Javascript 日期处理之时区问题
作者:bea
代码如下: //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; } //然后使用,创建一个日期对
代码如下:
//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也是正确的
最后发现原来是时区的问题,所以大家以后发现这类问题,可以看下时区是不是没对应上。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JS 文件本身编码转换 图文教程
- jQuery 行级解析读取XML文件(附源码)
- css 有弹动效果的网页导航
- jquery select选中的一个小问题
- Jquery 表单取值赋值的一些基本操作
- jquery 框架使用教程 AJAX篇
- javascript createElement()创建input不能设置name属性的解决方法
- jQuery live( type, fn ) 委派事件实现
- 修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
- JS模拟的QQ面板上的多级可展开的菜单
- JavaScript 另类遍历数组实现代码
- js css样式操作代码(批量操作)
- javascript Range对象跨浏览器常用操作
- 防止动态加载JavaScript引起的内存泄漏问题
- JavaScript delete 属性的使用
- 有效的捕获JavaScript焦点的方法小结
- Javascript isArray 数组类型检测函数
- JavaScript 监听textarea中按键事件
- jquery 最简单的属性菜单