【发布时间】:2014-08-13 14:24:52
【问题描述】:
我正在尝试从日期字符串中获取正确的月份,只要日期不是本月的第一天 (01),它就可以正常工作。如果是第一天,则返回上个月:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display the month.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var str="2014-12-01"
var d = new Date(str);
var m = d.getMonth()+1;
document.getElementById("demo").innerHTML = m;
}
</script>
</body>
</html>
返回:11
应该返回:12
如果日期字符串是2013-8-01,那么将返回7,而它应该是8。如果在getMonth() 之后没有+1,则将返回6,而不是7。
【问题讨论】:
-
日期字符串被解析为 UTC,所以如果您在格林威治以西的时区,日期将是前一天。对于那些有正偏移的人来说,它工作得很好。 :-)
标签: javascript date