Ext 4.2.1 模型日期解析在浏览器之间不一致

Ext 4.2.1 Model date parsing inconsistent across browsers

本文关键字:浏览器 之间 不一致 日期 模型 Ext      更新时间:2023-09-26

我在 Ext JS 4.2.1 中声明了一个类型为"date"的模型

我正在插入值为"2016-04-07 22:46:15.000"的记录

在 Chrome 中,可以正确解析(和显示)该值。在 IE11 和 Firefox 中,该值会静默地从记录中删除。

我这里有一个最小的例子:

Ext.onReady(function(){
Ext.define('Customer', {
    extend : 'Ext.data.Model',
    fields : [ { name:'contract_start', type:'date'} ]
});
Ext.create('Ext.data.Store', {
    storeId:'customerStore',
    model:'Customer',
    data:{'items':[
        { 'contract_start': "2016-04-07 22:46:15.000" }
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});
Ext.create('Ext.grid.Panel', {
    store: Ext.data.StoreManager.lookup('customerStore'),
    columns: [
        { dataIndex: 'contract_start', flex: 1 }
    ],
    height: 200,
    width: 400,
    renderTo: 'target'
});

});

[JS 小提琴 | https://jsfiddle.net/jnj3j7r2/]

这是 Ext JS 4.2.1 中的已知错误吗?是否有任何已知的解决方法,或者有什么可以尝试的?

文档中对此进行了介绍:

需要注意的是,虽然此配置是可选的,但它 将默认使用基本 JavaScript Date 对象的解析函数 如果未指定,则不指定 Ext.Date.parse。这可能会导致 意外问题,尤其是在时区之间转换时,或 转换未指定时区的日期时。这 本机 Date.parse 的行为是特定于实现的,并且 根据日期字符串的值,它可能会返回 UTC 日期或本地日期。因此,强烈建议 在分析日期时始终指定显式日期格式。