使用date.js在中午和午夜之间产生混乱

我在我的项目中使用了date.js,并且遇到了一些我没想到的事情,那些日期的时间组件恰好是中午或者正好是午夜。

当我使用本地javascript Date.parse方法时,我得到了我在分析日期时预期的结果:

// plain old javascript
var date = new Date(Date.parse("10/21/2010 12:00:00 PM"));
alert(date);

我得到这个:

Thu Oct 21 2010 12:00:00 GMT-0500(中央夏令时间)

我在2010年10月21日解释为中午,这是我认为我的输入日期是。 但是,当我导入date.js并尝试类似的东西时,

// using date.js
var date = Date.parseExact("10/21/2010 12:00:00 PM", "M/d/yyyy hh:mm:ss tt");
alert(date);

我得到这个:

星期五2010年10月22日00:00:00 GMT-0500(中央夏令时间)

这在我看起来像第二天午夜。 我不知道为什么它会将其解释为午夜,或者至少为什么它将这种解释与JavaScript中的默认Date.parse不同。 我对12:00 PM的含义感到困惑吗? 我滥用date.js的parseExact吗?


看起来像一个版本问题:

http://jsfiddle.net/4QK8Q/
http://jsfiddle.net/JKg3n/

第一个是你的文件(来自谷歌代码库),第二个来自他们的网站(datejs.com)。 有趣的是,它们看起来像是相同的版本,但显然不是。 我对图书馆不太熟悉,不知道发生了什么,但我建议提交一份错误报告。


这是一个相当古老的问题,但对于那些可能在搜索中偶然发现的人来说,如果你愿意的话,强烈建议你切换到当前维护的Date.js版本(https://github.com/abritinthebay/datejs/) '遇到意想不到的行为。

谷歌代码库和datejs.com上的版本都有不确定的错误,因为原始开发者似乎已经放弃了该项目。

链接地址: http://www.djcxy.com/p/18635.html

上一篇: Confusion over noon versus midnight with date.js

下一篇: Open a URL in a new tab (and not a new window) using JavaScript