功能“新日期()”做一些奇怪的事情

时间:2011-05-26 08:45:31

标签: jquery date

我注意到jQuery函数New Date()做了一些奇怪的事情。我已经找到了解决它的方法,所以我不需要帮助。我只是想明白为什么会这样做。

我有一个函数执行以下操作:

new Date(parseInt(y),parseInt(m)-1,parseInt(d))

实际数字为:y= '2011', m= '07', d='01'。这很好,它返回日期1/7/2011。但是当我使用m= '08'时,它会返回“Wed Dec 01 2010”

我将其跟踪到parseInt函数。不知何故parseInt('07') = 7parseInt('08') = 0 有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:5)

尝试new Date(parseInt(y,10),parseInt(m,10)-1,parseInt(d,10))

如果字符串以零开头,则

parseInt使用base。

答案 1 :(得分:2)

First New Date()不是jQuery函数,而是纯JavaScript。

不幸的是,JavaScript从C语言中借了很多东西,在C语言中你通过在它前面加一个零来编写八进制数。八进制数字从0到7。

你必须做的,也是最佳做法,就是说你有十进制数,而不是八进制。

总是给出基数:parseInt(y,10),所以你的代码将是:

new Date(parseInt(y, 10),parseInt(m, 10)-1,parseInt(d, 10))

有关parseInt的更多信息:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt