我注意到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') = 7
但parseInt('08') = 0
有谁知道为什么会这样?
答案 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