使用setMonth时出现Javascript日期问题
Javascript Date issue when using setMonth
在开发firefox插件时,以下内容会产生不同的结果?
var out = document.getElementById('out');
out.textContent += new Date(2015, 1, 6, 16, 0, 0, 0) + ''n'; // -> Date "2015-02-06T15:00:00.000Z" correct, months are zero-based
var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(1);
dt.setDate(6);
dt.setHours(16);
out.textContent += dt + ''n'; // -> Date "2015-03-06T15:00:00.000Z" ??
<pre id="out"></pre>
问题是setMonth(1)将March设置为第二种情况。这种情况发生在任意日期,其他日期在这两种方法下都很好。知道为什么吗?
var out = document.getElementById('out');
out.textContent += new Date(2015, 0, 30, 16, 0, 0, 0) + ''n'; // -> 2015-01-30T15:00:00.000Z" months are zero-based
var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(0);
dt.setDate(30);
dt.setHours(16);
out.textContent += dt + ''n'; // -> 2015-01-30T15:00:00.000Z
<pre id="out"></pre>
这是因为包装,与Firefox或Firefox插件无关。
var dt = new Date(0, 0, 0, 0, 0, 0, 0);
dt.setFullYear(2015);
dt.setMonth(1);
dt.setDate(6);
dt.setHours(16);
最初,dt
是1899年12月31日。
现在,我们将其设定为2015年:2015年12月31日
这个月变成了二月,但因为二月只有28天,所以它结束于三月:2015年3月3日
然后,当然,日期是第六天,所以是3月6日。
相关文章:
- Javascript日期格式类似于ISO,但本地
- 正在搜索JavaScript日期选择器滑块
- 将Javascript日期转换为ASP.NET日期格式
- Javascript日期修改
- 转换异常时间&Datestring到JavaScript日期
- 从int值来看,Javascript日期不正确
- Chrome Javascript日期构造函数错误
- Javascript日期解析
- javascript日期减去小时-错误
- PHP strtotime()为JavaScript日期字符串返回false
- 复制Javascript日期选择器
- javascript日期库重复十月
- 正在使用日期字符串初始化javascript日期对象
- 正在设置未来的Javascript日期
- 来自控制器的javascript日期
- asp-netc#DateTime转换为javascript日期
- 使用JavaScript日期的任何时间的时区偏移量
- javascript日期时区问题
- JavaScript日期&时间转换tz到正常
- 当天数大于月份的天数时,javascript日期会创建奇怪的日期