当前位置: 移动技术网 > IT编程>开发语言>JavaScript > Javascript 日期处理之时区问题

Javascript 日期处理之时区问题

2019年07月30日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

//dateobj是一个日期对象,days表示给这个日期加多少天,比如说4,5(天)
function dateadd(dateobj,days){
var tempdate = dateobj.valueof();
tempdate = tempdate + days * 24 * 60 * 60 * 1000;
tempdate = new date(tempdate);
return tempdate;
}

//然后使用,创建一个日期对象
var datevalue = document.getelementbyid("xxyy").value.split("-");
var custarvdatetwovalue = new date(datevalue[0],datevalue[1]-1,datevalue[2]);
//调用dateadd,加两天
custarvdatetwovalue = dateadd(custarvdatetwovalue,2);
var year = custarvdatetwovalue.getfullyear();
var month = custarvdatetwovalue.getmonth() + 1;
var days = custarvdatetwovalue.getdate();
month = month <= 9 ? "0"+month : month;
days = days <= 9 ? "0"+days : days;
document.getelementbyid("xx").value = year + "-" + month + "-" +days;

我在测试的时候发现,当document.getelementbyid("xxyy").value的值是2009-10-31
返回的居然是2009-11-01

其它情况都是正确的,比如说输入2009-10-01,返回2009-10-03
我还试了今天和明年的每个月最后一天,只有2009-10-31出问题(我试了很多时间,只有这个时间有问题,难度这个月有32天)

当我试2009-10-31,返回的是2009-11-01也是正确的

最后发现原来是时区的问题,所以大家以后发现这类问题,可以看下时区是不是没对应上。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网