if ( !res ) {
throw new Error("'" + str + "' is not a valid datetime");
}
- var obj = Date.parse(res[1] + " GMT");
+ var obj = Date.parseExact(res[1] + " UTC", 'yyyy-MM-dd HH:mm:ss zzz');
if (! obj) {
throw new Error("'" + str + "' is not a valid datetime");
}
if ( !res ) {
throw new Error("'" + str + "' is not a valid date");
}
- var obj = Date.parse(str);
+ var obj = Date.parseExact(str + ' UTC', 'yyyy-MM-dd zzz');
if (! obj) {
throw new Error("'" + str + "' is not a valid date");
}
if ( !res ) {
throw new Error("'" + str + "' is not a valid time");
}
- var obj = Date.parse(res[1]);
+ var obj = Date.parseExact(res[1] + ' UTC', 'HH:mm:ss zzz');
if (! obj) {
throw new Error("'" + str + "' is not a valid time");
}
$(document).ready(function () {
var openerp;
+
+ module('server-formats', {
+ setup: function () {
+ openerp = window.openerp.init();
+ window.openerp.web.core(openerp);
+ window.openerp.web.dates(openerp);
+ }
+ });
+ test('Parse server datetime', function () {
+ var date = openerp.web.str_to_datetime("2009-05-04 12:34:23");
+ deepEqual(
+ [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),
+ date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()],
+ [2009, 5 - 1, 4, 12, 34, 23]);
+ deepEqual(
+ [date.getFullYear(), date.getMonth(), date.getDate(),
+ date.getHours(), date.getMinutes(), date.getSeconds()],
+ [2009, 5 - 1, 4, 12 - (date.getTimezoneOffset() / 60), 34, 23]);
+
+ var date2 = openerp.web.str_to_datetime('2011-12-10 00:00:00');
+ deepEqual(
+ [date2.getUTCFullYear(), date2.getUTCMonth(), date2.getUTCDate(),
+ date2.getUTCHours(), date2.getUTCMinutes(), date2.getUTCSeconds()],
+ [2011, 12 - 1, 10, 0, 0, 0]);
+ });
+ test('Parse server date', function () {
+ var date = openerp.web.str_to_date("2009-05-04");
+ deepEqual(
+ [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()],
+ [2009, 5 - 1, 4]);
+ });
+ test('Parse server time', function () {
+ var date = openerp.web.str_to_time("12:34:23");
+ deepEqual(
+ [date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()],
+ [12, 34, 23]);
+ });
+
module('web-formats', {
setup: function () {
openerp = window.openerp.init();