diff --git a/addons/web/static/src/js/core/time.js b/addons/web/static/src/js/core/time.js index b9f41813030..9a640d231c8 100644 --- a/addons/web/static/src/js/core/time.js +++ b/addons/web/static/src/js/core/time.js @@ -306,7 +306,7 @@ const dateFormatWoZeroCache = {}; */ function getLangDateFormatWoZero() { const dateFormat = getLangDateFormat(); - if (!dateFormat in dateFormatWoZeroCache) { + if (!(dateFormat in dateFormatWoZeroCache)) { dateFormatWoZeroCache[dateFormat] = dateFormat .replace('MM', 'M') .replace('DD', 'D'); @@ -320,7 +320,7 @@ const timeFormatWoZeroCache = {}; */ function getLangTimeFormatWoZero() { const timeFormat = getLangTimeFormat(); - if (!timeFormat in timeFormatWoZeroCache) { + if (!(timeFormat in timeFormatWoZeroCache)) { timeFormatWoZeroCache[timeFormat] = timeFormat .replace('HH', 'H') .replace('mm', 'm') diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js index 7dfb92b3d19..beba1b07f50 100644 --- a/addons/web/static/src/js/fields/field_utils.js +++ b/addons/web/static/src/js/fields/field_utils.js @@ -467,7 +467,7 @@ function parseDate(value, field, options) { return false; } var datePattern = time.getLangDateFormat(); - var datePatternWoZero = datePattern.replace('MM', 'M').replace('DD', 'D'); + var datePatternWoZero = time.getLangDateFormatWoZero(); var date; const smartDate = parseSmartDateInput(value); if (smartDate) { diff --git a/addons/web/static/tests/core/time_tests.js b/addons/web/static/tests/core/time_tests.js index 3407f5f4276..54b8ccae825 100644 --- a/addons/web/static/tests/core/time_tests.js +++ b/addons/web/static/tests/core/time_tests.js @@ -1,6 +1,7 @@ odoo.define('web.time_tests', function (require) { "use strict"; +const core = require('web.core'); var time = require('web.time'); QUnit.module('core', {}, function () { @@ -145,6 +146,20 @@ QUnit.module('core', {}, function () { assert.strictEqual(time.time_to_str(date), "12:34:23"); }); + QUnit.test("Get lang datetime format", (assert) => { + assert.expect(4); + const originalParameters = Object.assign({}, core._t.database.parameters); + Object.assign(core._t.database.parameters, { + date_format: '%m/%d/%Y', + time_format: '%H:%M:%S', + }); + assert.strictEqual(time.getLangDateFormat(), "MM/DD/YYYY"); + assert.strictEqual(time.getLangDateFormatWoZero(), "M/D/YYYY"); + assert.strictEqual(time.getLangTimeFormat(), "HH:mm:ss"); + assert.strictEqual(time.getLangTimeFormatWoZero(), "H:m:s"); + Object.assign(core._t.database.parameters, originalParameters); + }); + }); }); \ No newline at end of file