extjs日期字段浏览器未显示

extjs日期字段浏览器未显示,extjs,cross-browser,extjs4.1,datefield,Extjs,Cross Browser,Extjs4.1,Datefield,所以我似乎找不到关于这个的任何东西,但我有一个奇怪的跨浏览器问题,我似乎无法找出它发生的原因。我有一个datefield,该字段应该向后拉某个日期。在Chrome中显示日期,而在FF和IE中则不显示日期 奇怪的是,我查看了从后端返回的数据,数据就在那里,它只是设置输入的值(也不是我们要求提取数据的任何位置的值,甚至不是在网格中) 有没有什么我遗漏的,可以让它在Chrome中正确显示,而不是在FF和IE中?也许是商店里的东西或模型 我正在使用ExtJS4.1.2,以防有助于回答问题 视图(网格)

所以我似乎找不到关于这个的任何东西,但我有一个奇怪的跨浏览器问题,我似乎无法找出它发生的原因。我有一个datefield,该字段应该向后拉某个日期。在Chrome中显示日期,而在FF和IE中则不显示日期

奇怪的是,我查看了从后端返回的数据,数据就在那里,它只是设置输入的值(也不是我们要求提取数据的任何位置的值,甚至不是在网格中)

有没有什么我遗漏的,可以让它在Chrome中正确显示,而不是在FF和IE中?也许是商店里的东西或模型

我正在使用ExtJS4.1.2,以防有助于回答问题

视图(网格)

视图(面板)

贮藏

模型


尝试使用日期格式在模型中形成日期字段,如下所示:

{name:'expectedCompleteBy', type:'date', mapping:'expectedCompleteBy', dateFormat:'Y-m-d'},
此外,在网格中,您还可以使用以下格式显示日期字段:

xtype:'datecolumn', format:'Y-m-d', dataIndex:'expectedCompleteBy'
XTemplate还具有特殊的日期功能:

{expectedCompleteBy:date("Y-m-d")} 
并以以下形式:

{  xtype:'datefield',
   fieldLabel:'Need By Date',
   name:'needByDate',
   //submitFormat:'Y-m-d', defaults to format
   format:'Y-m-d'
 }

日期格式API:

尝试使用日期格式在模型中形成如下日期字段:

{name:'expectedCompleteBy', type:'date', mapping:'expectedCompleteBy', dateFormat:'Y-m-d'},
此外,在网格中,您还可以使用以下格式显示日期字段:

xtype:'datecolumn', format:'Y-m-d', dataIndex:'expectedCompleteBy'
XTemplate还具有特殊的日期功能:

{expectedCompleteBy:date("Y-m-d")} 
并以以下形式:

{  xtype:'datefield',
   fieldLabel:'Need By Date',
   name:'needByDate',
   //submitFormat:'Y-m-d', defaults to format
   format:'Y-m-d'
 }

日期格式API:

您的问题是没有在模型上指定日期格式。由于您没有这样做,它将转到原生JS Date.parse方法来创建日期。一些浏览器在接受何种格式方面比其他浏览器更为宽容

例如,在FF中比较以下各项:

console.log(Date.parse('2012-01-01'));
console.log(Ext.Date.parse('2012-01-01', 'Y-m-d'));
长话短说,在模型上指定日期格式,这样就不会让浏览器随意决定如何解析日期

从文档中:

当类型为时,将接收的数据转换为日期时使用 指定为“日期”

在序列化日期字段以供用户使用时,也会使用格式字符串 作家

Ext.Date.parse函数的格式字符串,如果 读取器提供的值是UNIX时间戳,如果 读取器提供的值是javascript毫秒时间戳。 见分机日期

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


您的问题是没有在模型上指定日期格式。由于您没有这样做,它将转到原生JS Date.parse方法来创建日期。一些浏览器在接受何种格式方面比其他浏览器更为宽容

例如,在FF中比较以下各项:

console.log(Date.parse('2012-01-01'));
console.log(Ext.Date.parse('2012-01-01', 'Y-m-d'));
长话短说,在模型上指定日期格式,这样就不会让浏览器随意决定如何解析日期

从文档中:

当类型为时,将接收的数据转换为日期时使用 指定为“日期”

在序列化日期字段以供用户使用时,也会使用格式字符串 作家

Ext.Date.parse函数的格式字符串,如果 读取器提供的值是UNIX时间戳,如果 读取器提供的值是javascript毫秒时间戳。 见分机日期

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


另外,让我知道是否有任何特定的代码,你们想要的。我不知道在这种情况下显示什么是有益的,因为它只是我从参考资料中提取的一个标准日期字段……它是如何提取日期的?它是什么格式的?它是通过模型来的吗?您如何设置该值?问题是,这发生在多个loc中。我们正在datefield输入框中设置值,该输入框对PHP后端使用'Y-d-m'的'submitFormat'。当我们取出数据时,我们只使用默认格式/altFormat。我们正在通过模型提取数据。当我们得到结果时,我们肯定会从后端获得正确的数据,但是由于某些原因,只有chrome渲染了细节,而其他的没有。对于网格,我们只需关联适当的存储(如果我理解正确的话),存储就会相应地填充网格。我们也在别处使用记录。仅供参考,上面的意思是“发布一些代码”…)哈哈,我想我只是不知道你想要什么,因为它发生在不止一个地方。这是我的第一个ExtJS应用程序=/不过我会发布一些东西。让我知道这是否还不够和/或你们是否想要更多。另外,让我知道你们是否想要任何特定的代码。我不知道在这种情况下显示什么是有益的,因为它只是我从参考资料中提取的一个标准日期字段……它是如何提取日期的?它是什么格式的?它是通过模型来的吗?您如何设置该值?问题是,这发生在多个loc中。我们正在datefield输入框中设置值,该输入框对PHP后端使用'Y-d-m'的'submitFormat'。当我们取出数据时,我们会