Javascript dojo.date.locale.parse返回null
我在小提琴上做了一个例子 在我的例子中,该示例在使用Chrome版本35.0.1916.114 m的Windows 7(64位)计算机上失败。 它适用于Dojo1.8或更低版本,但任何高于1.8的版本都返回null。为什么?Javascript dojo.date.locale.parse返回null,javascript,date,dojo,Javascript,Date,Dojo,我在小提琴上做了一个例子 在我的例子中,该示例在使用Chrome版本35.0.1916.114 m的Windows 7(64位)计算机上失败。 它适用于Dojo1.8或更低版本,但任何高于1.8的版本都返回null。为什么? 此外,它在我的ubuntu 13.10上运行,chromium 34.0.1847.xxx(即使是dojo 1.9.3)首先,您应该使用给定的格式参数测试输出,它应该让您了解解析时的预期: require([ "dojo/date/locale" ], functi
此外,它在我的ubuntu 13.10上运行,chromium 34.0.1847.xxx(即使是dojo 1.9.3)首先,您应该使用给定的格式参数测试输出,它应该让您了解解析时的预期:
require([
"dojo/date/locale"
], function( locale ) {
var dateString = locale.format(new Date(), {datePattern: "MMM dd, yyyy",
timePattern: "HH:mm:ss a"})
console.log(dateString)
});
2014年6月2日09:16:16上午
我无法在我的Windows机器上运行您的示例(IE和FF,所以这不仅仅是Chrome的问题),但从输出格式来看,似乎需要逗号。添加缺少的逗号后,它在两种浏览器上都起作用:
var dateString = "Jan 20, 2014, 12:30:00 AM"
其次,如果对月份名称进行操作,还需要指定区域设置:
var date = locale.parse(dateString, {datePattern: "MMM dd, yyyy",
timePattern: "HH:mm:ss a", locale: "en-US"})
因为否则,如果浏览器中的区域设置与“EN”不同,则给定的示例将不起作用
我已经在Dojo1.9、Windows7、IE和FF上进行了测试
我无法在Linux机器上测试这一点,但如果相同的代码依赖于操作系统,那么Dojo中的错误将非常严重 不是修复程序,但您可以将
dojo.date.locale.parse(…)
更改为locale.parse(…)
。您使用的是调用dojo函数的非常旧的方法。
var date = locale.parse(dateString, {datePattern: "MMM dd, yyyy",
timePattern: "HH:mm:ss a", locale: "en-US"})