0

我有以下代码

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')

4

2 回答 2

1

Safari 不知道这个错误,在 ipad 上看到:不处理这样的原生 Date 创建new Date("2013-04-02")

这可能是问题所在,您必须在此之前进行拆分工作,因此直接提供 Date 对象:new Date(2013, 3, 2)而不是您的日期字符串。

这完全解释了您的问题:未解析的日期没有用 getMonth 回答月份,因此本月没有月份名称不是一个月,因此当从没有此方法的东西调用时子字符串失败,因为它不是字符串。

于 2013-04-04T06:30:14.903 回答
1

我无法解释为什么它会在 Chrome 中工作,但你在第二个之后缺少一个单引号.format(

于 2013-04-04T06:27:05.153 回答