【发布时间】:2013-04-25 21:14:51
【问题描述】:
我有一个带有日期列的 Ext.grid。一切正常,除了日期是休息一天。
我发现当我将数据添加到网格的存储中时,值为2013-03-31。后来看店铺的数据,值为Sat Mar 30 2013 17:00:00 GMT-0700 (US Mountain Standard Time)
显然,这是一个时区问题,但我不知道如何解决它。
这是我将数据添加到网格存储的代码
for (var i = 0; i < dateboxes.length; i++)
{
dateboxGrid.store.add(dateboxes[i]);
//dateboxes[i].Value contains the date in this form: "2013-03-31"
}
console.log(dateboxGrid.getStore()) //logs "Sat Mar 30 2013 17:00:00 GMT-0700 (US Mountain Standard Time)"
在将dateboxes[i].Value 添加到商店之前,我需要对它执行什么操作以确保预期日期显示在列中?
更新
我做了以下更改。当我将日期保存到数据库时,我首先在数据上调用.toISOString()。现在,当数据从数据库加载到存储中时,它被加载为GMT +0700,并且当它加载到字段中时日期看起来是正确的。
但是......我担心这意味着它会在不同时区的人身上显示错误。
我想要的只是一个日期。我什至不想记录时间。这在我的应用程序中毫无意义。
【问题讨论】:
-
我对 extjs 了解不多,但我会尝试在日期后添加一个“Z”,以便它的形式为“2013-03-31Z”。这应该会导致在没有任何时区偏移的情况下保存时间。见ISO 8601。
-
在日期末尾添加“Z”无效。
标签: javascript date grid extjs4.1 utc