从int值来看,Javascript日期不正确

Javascript date is incorrect from int value

本文关键字:Javascript 日期 不正确 int      更新时间:2023-09-26

var vdate= new Date(parseInt("1438405200000"));
var vmonth = vdate.getMonth() + 1;
alert(vmonth);

当我用javascript从int值创建日期变量时,我得到了不正确的月份,在本例中,日期(1438405200000)为2015-08-01

var vdate= new Date(parseInt("1438405200000"));
var vmonth = vdate.getMonth() + 1;
alert(vmonth);

警报显示7,正确的是8,这只发生在一些电脑中。可能是区域设置或类似的情况吗?

这是因为Months是0-11,而不是1-12。(把它想象成数组中的元素。var months = ["January", "February", "March"...]

Date.prototype.getMonth() 上的MDN文档

此外,您所在的时区可能比GMT晚了5个多小时。(由于该时间戳特别对应于2015年8月1日05:00:00)JavaScript的日期对象将尝试将时间本地化到您当前的时区。(在我的情况下,GMT-7)因此,对我使用getMonth()将返回6而不是7。如果本地化是所需的行为,那么这是可以的。否则,如果它是UTC时间,并且您希望获得特定的UTC表示,则应该调用getUTCMonth(),或者以其他方式补偿时区偏移。