1

我在我的项目中使用date.js,我遇到了一些我没想到的关于日期的时间部分正好是中午或午夜的事情。

当我使用本机 javascriptDate.parse方法时,我在解析日期时得到了预期的结果:

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

我明白了:

2010 年 10 月 21 日星期四 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(中部夏令时间)

在我看来,这就像第二天的午夜。我不知道为什么它将它解释为午夜,或者无论如何它解释它的方式与Date.parsejavascript 中的默认值不同。我对 12:00 PM 的含义感到困惑吗?我在滥用 date.js 的 parseExact 吗?

4

2 回答 2

1

看起来像一个版本问题:

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

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

于 2011-09-15T22:00:56.370 回答
1

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

Google 代码库和 datejs.com 上的版本都有未修复的错误,这些错误不太可能得到解决,因为最初的开发人员似乎已经放弃了该项目。

于 2014-06-19T17:36:58.847 回答