为什么ExtJS在格式化日期时减去一天?

时间:2012-01-26 18:54:23

标签: date extjs4

使用ExtJS 4.0.2,我可以在控制台中输入以下内容:

Ext.util.Format.date('2012-01-13', "m-d-Y");

我得到01-12-2012

为什么?
我可以用:

来纠正它
Ext.util.Format.date('2012-01-13 00:00:00', "m-d-Y");

3 个答案:

答案 0 :(得分:2)

Ext 4.0.2中的Ext.util.Format.date使用Date对象或String(您的情况)。使用UTC时区使用本机Date.parse()解析此字符串。

尝试使用Ext.Date.parse显式解析它:

var dt = Ext.Date.parse("2012-01-13", "Y-m-d");
Ext.util.Format.date(dt, "m-d-Y");

答案 1 :(得分:0)

Ext3中存在此问题,但解决方案略有不同:

var dt = '2012-01-31'; //date string
dt = Date.parseDate(dt, "Y-m-d");
Ext.util.Format.date(dt, 'm/d/Y'); //returns 01/31/2012

答案 2 :(得分:0)

如果您无法使用Gregor的答案(例如填充网格),请注意,将输入更改为非ISO 8601日期格式也将避免UTC解析。例如

Ext.util.Format.date('01/13/2012', "Y-m-d");

将提供2012-01-13