From 1e9b2ccc202e6b3b167aa2bcf6470fdf25983c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 21 Feb 2024 09:52:06 +0100 Subject: [PATCH] Use moment to parse time Closes #13032 (grafted from 1b77b079e942f554c4f074533e209a340e5afa80) --HG-- branch : 6.0 --- sao/src/common.js | 21 +++++++-------------- sao/tests/sao.js | 2 +- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/sao/src/common.js b/sao/src/common.js index 1163acd90c..6c34ea70b5 100644 --- a/sao/src/common.js +++ b/sao/src/common.js @@ -247,21 +247,14 @@ }; Sao.common.parse_time = function(format, value) { - if (!value) { - return null; + var date = moment(value, Sao.common.moment_format(format)); + if (date.isValid()) { + date = Sao.Time( + date.hour(), date.minute(), date.second(), date.millisecond()); + } else { + date = null; } - var getNumber = function(pattern) { - var i = format.indexOf(pattern); - if (~i) { - var number = parseInt(value.slice(i, i + pattern.length), 10); - if (!isNaN(number)) { - return number; - } - } - return 0; - }; - return Sao.Time(getNumber('%H'), getNumber('%M'), getNumber('%S'), - getNumber('%f')); + return date; }; Sao.common.format_date = function(date_format, date) { diff --git a/sao/tests/sao.js b/sao/tests/sao.js index 4fef0368d0..9619b796bb 100644 --- a/sao/tests/sao.js +++ b/sao/tests/sao.js @@ -1773,9 +1773,9 @@ }; [ ['12:30:00', Sao.Time(12, 30, 0)], - ['test', Sao.Time(0, 0, 0)] ].forEach(test_valueOf_func, field); [ + ['test', null], [null, null] ].forEach(test_func, field);