pic*_*rdo 50 javascript datetime
当我遇到这种奇怪的行为时,我正在玩Javascript创建一个简单的倒计时时钟:
var a = new Date(),
now = a.getTime(),
then = Date.UTC(2009,10,31),
diff = then - now,
daysleft = parseInt(diff/(24*60*60*1000));
console.log(daysleft );
Run Code Online (Sandbox Code Playgroud)
剩下的日子是30天.
这段代码有什么问题?
编辑:我更改了变量名称以使其更清晰.
Eri*_* J. 97
JavaScript的月份为零.
日和年是一个基础.
去搞清楚.
UPDATE
这样的原因,来自JavaScript的创建者,是
JS不得不"看起来像Java",不如Java,愚蠢的孩子兄弟或男孩 - 人质伙伴.另外,我必须在十天内完成或者比JS更糟糕的事情发生.
http://www.jwz.org/blog/2010/10/every-day-i-learn-something-new-and-stupid/#comment-1021
正如埃里克所说,这是因为几个月被列为0-11范围.
这是一种常见的行为 - 来自localtime()的Perl结果也是如此,可能还有许多其他语言.
这可能最初是从Unix的localtime()调用继承而来的.(做"当地人")
原因是几天/几年是他们自己的整数,而几个月(作为#)是数组的索引,在大多数语言中 - 尤其是在Unix上实现底层调用的C - 从0开始.
| 归档时间: |
|
| 查看次数: |
14143 次 |
| 最近记录: |