我有以下代码
var date = Ext.Date.format('2013-04-02', 'Y-n-j')
var formattedDate=Ext.Date.format('2013-04-02', 'M d')
console.log(date);
console.log(formattedDate);
在Chrome上,它会在控制台上正确打印出日期。在Safari中它失败了。谁是正确的,更重要的是处理这个问题的最佳方法是什么?
Safari抛出以下错误:
TypeError:'undefined'不是对象(评估'utilDate.monthNames [month] .substring')
答案 0 :(得分:1)
我无法解释为什么它可以在Chrome中运行,但是在第二个.format(
之后你错过了一个引用
答案 1 :(得分:1)
Safari默默地不知道这个错误,在ipad上看到:没有处理这样的原生日期创建new Date("2013-04-02")
。
这可能是问题所在,您必须先进行拆分工作,因此直接提供Date对象:new Date(2013, 3, 2)
而不是您的日期字符串。
这完全解释了你的问题:一个未解析的日期用getMonth回答没有月份的月份,因此这个月没有月份名称不是一个月,因此当从没有这种方法的东西调用时,子串会失败,因为它不是一个字符串。