当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript 日期处理之时区问题

Javascript
jquery 交替为表格添加样式的代码
jquery下操作HTML控件的实现代码
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
海量经典的jQuery插件集合
JavaScript获取鼠标坐标的函数(兼容IE、FireFox、Chrome)
JavaScript关于select的相关操作说明
jQuery的一些特性和用法整理小结
用jQuery扩展自写的 UI导航
JQuery 引发两次$(document.ready)事件
javascript实现的基于金山词霸网络翻译的代码
Span元素的width属性无效果原因及解决方案
javascript 不间断的图片滚动并可点击
利用onresize使得div可以随着屏幕大小而自适应的代码
extjs 为某个事件设置拦截器
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
javascript 特性检测并非浏览器检测
20个非常有用的PHP类库 加速php开发
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
AJAX的跨域与JSONP(为文章自动添加短址的功能)
JavaScript学习笔记(十)

Javascript 日期处理之时区问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-10   浏览: 109 ::
收藏到网摘: n/a

所以大家以后发现这类问题,可以看下时区是不是没对应上。
复制代码 代码如下:

//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也是正确的
最后发现原来是时区的问题,所以大家以后发现这类问题,可以看下时区是不是没对应上。