javascript - JS日期问题
高洛峰
高洛峰 2017-04-10 17:27:58
[JavaScript讨论组]
 var date = new Date(2016,8,31);
    alert(date.getTime());
    var date2 = new Date(2016,9,01);
    alert(date2.getTime());

这俩毫秒数相同,为啥?
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
高洛峰

跑下下面的代码:


var date = new Date(2016,8,31);
console.log(date);
var date2 = new Date(2016,9,01);
console.log(date2);

JS 中月份是从 0 开始,九月没有 31 号,跳到下一个月啦

PHP中文网

月份是从0开始算的

var date = new Date(2016,8,31);  //表示9月31日,又因为9月只有30天,所以是10月1日
var date2 = new Date(2016,9,01); //表示10月1日
高洛峰
var date = new Date(2016,8,31);

Sat Oct 01 2016 00:00:00 GMT+0800 (中国标准时间)

var date2 = new Date(2016,9,01);

Sat Oct 01 2016 00:00:00 GMT+0800 (中国标准时间)

新手在设置日期时,常会出现上述问题:即月份认为是从1开始,实际上Date对象的第二个参数表示月份,从0开始计数。超出后将累计到年份上。故:

var date = new Date(2016,12,31);

Tue Jan 31 2017 00:00:00 GMT+0800 (中国标准时间)

将是2017-01-31。
出现这种误解,应该是第三个参数引起的,即天数是从1开始。但是天数可以为0,不过这时相当于前一个月的最后一天。如:

var date = new Date(2016,12,0);

Sat Dec 31 2016 00:00:00 GMT+0800 (中国标准时间)

此时是2016-12-31。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号