日期在数据库中以格式YYYY-mm-dd hh:mm:ss
存储。Extjs日期格式问题safari firefox
e.g. 2014-07-03 00:00:00
但我想我Ext.Field.Date
有格式:
Y-m-d H:i
按我的组件设置:
xtype: 'datefield',
id: 'p_p_start',
fieldLabel: 'Planned Start',
name: 'plannedstart',
allowBlank: false,
vtypeText: 'Date not valid',
format: 'Y-m-d H:i',
这是很合理的我想能够在除Chrome以外的浏览器中显示日期。迄今为止,FireFox和Safari将不会显示任何内容。
我看了看SO类似的问题,它提出了支持通过拆分所有的浏览器,并重新组装字符串格式的变化:
var c=Ext.getCmp('p_p_start');
var st_date = "2014-05-08";// with alt formats changed Y-m-d, leaving time out diags
var dateParts = st_date.split(/-/);
var d = new Date(dateParts[0],parseInt(dateParts[1], 10) -1,dateParts[2]);
console.log("Date parts= " + dateParts);//Date parts= 2014,05,08
c.setValue( d); //NOPE!
我很高兴在Chrome进度(没有问题),但尚未成功获得在FF或Safari中的任何工作(未尝试IE,但它也必须在这方面工作)。因此,总之,问题是, 如何在所有浏览器中使用setValue
使用格式Y-m-d H:i
获取日期格式?
非常感谢提前。
凯文
谢谢马特。它不能解决safari/ff问题,但可以在Chrome中使用。 var dateObj2 = Ext.Date.parse(“2014-05-08 00:00”,“Y-m-d H:i”); console.log(“dateObj =”+ dateObj2); // dateObj = Thu May 08 2014 00:00:00 GMT + 0100(BST) Ext.getCmp('p_p_start')。setValue(dateObj2); 虽然我从中得到了一些很好的建议。将继续尝试。 – KevinY
其实这个代码应该可以在所有主流浏览器上运行,包括Firefox和Safari。看看这个[fiddle](https://fiddle.sencha.com/#fiddle/603),它适用于Chrome,Firefox,Internet Explorer和Safari。顺便说一句,你正在使用哪个ExtJS版本? – matt
它在所有浏览器上的Jsfiddle都能正常工作 - 完全如您所说 - 所以它在我的应用程序中出错。我在4.2.x上使用Sencha Architect 3.0.4.1386 cmd 4.0.4.84。我也更改了jsfiddle上的版本,问题在那里并不明显。再一次,感谢帮助我追踪这种情况的努力。 – KevinY