Globalize.js - 如何解析日期和时间而不仅仅是日期

Kev*_*vin 12 javascript culture datetime javascript-globalize

Globalize.js允许您根据应用的当前区域性解析日期字符串

var date = Globalize.parseDate("17/07/2013"); //Wed Jul 17 00:00:00 PDT 2013
Run Code Online (Sandbox Code Playgroud)

我想做的是解析DateTime.javascript Date对象处理这个,我很惊讶Globalize.js库没有.

var date = new Date("07/17/2013 11:55 pm"); //Wed Jul 17 23:55:00 PDT 2013
var date = Globalize.parseDate("07/17/2013 11:55 pm"); //null
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?我倾向于自己解析时间部分.是否有另一个扩展的库Globalize.js提供这种功能?我环顾四周但却找不到多少.

更新w /接受的答案

如果您知道日期所在的格式,则可以解析日期.

    var date = Globalize.parseDate("17/07/2013 11:55 pm", "MM/dd/yyyy hh:mm tt"); 
    //date = null
Run Code Online (Sandbox Code Playgroud)

在我的示例中,日期将为null,因为它期望时间段的格式为a.mp.m..一旦我改变了,我就能解析一个日期时间.

   var date = Globalize.parseDate("17/07/2013 11:55 p.m.", "MM/dd/yyyy hh:mm tt"); 
   //date = Wed Jul 17 23:55:00 PDT 2013
Run Code Online (Sandbox Code Playgroud)

注意:这仅适用于弃用的 Globalize 0.x.

注2:传递硬编码模式不是 i18n建议.

Rac*_* R. 12

如果你知道你正在使用的模式:

var date = Globalize.parseDate("07/17/2013 11:55 pm", "MM/dd/yyyy hh:mm tt");
Run Code Online (Sandbox Code Playgroud)

如果你不知道这种模式:

var date = Globalize.parseDate("07/17/2013 11:55 pm", Globalize.culture().calendar.patterns.d + " " + Globalize.culture().calendar.patterns.t)
Run Code Online (Sandbox Code Playgroud)

如果您需要其他文化,或者如果您还没有通过调用Globalize.culture("")来建立本地文化,那么上面的行就是假设当前的文化,那么只需在文化()上指定文化.

我刚刚在几分钟前运行了这个场景,并且发现了这个解决方案,最新的很麻烦,我希望有更清洁的方法来做到这一点.

注意:这仅适用于弃用的Globalize 0.x.

注2:传递硬编码模式不是 i18n建议.

  • 我认为此解决方案适用于 `globalize` 0.x 版,但不适用于 1.x 版库 (2认同)