为什么这段代码会在明天的日期返回?
它必须返回2013-08-31而不是2013-09-01,因为我们是8月31日。
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toisostring
function myFunction() {
var d = new Date();
var x = document.getElementById("demo");
x.innerHTML = d.toISOString();
}
<p id="demo">Click the button to display the date and time as a string, using the ISO
standard.</p>
<button onclick="myFunction()">Try it</button>
答案 0 :(得分:3)
是UTC。
如果您想获取当地时区,则必须自行设置日期格式(使用getYear()
getMonth()
等)或使用date.js之类的库来格式化日期
使用date.js非常简单:
(new Date()).format('yyyy-MM-dd')
修改强>
正如@MattJohnson所说,date.js已被放弃,但你可以使用像moment.js这样的替代品。
答案 1 :(得分:1)
使用:
new Date().toLocaleDateString('pt-br').split( '/' ).reverse( ).join( '-' );
或
(function() {
function pad(number) {
if (number < 10) {
return '0' + number;
}
return number;
}
Date.prototype.toISO1String = function() {
return this.getFullYear() +
'-' + pad(this.getMonth() + 1) +
'-' + pad(this.getDate()) +
'T' + pad(this.getHours()) +
':' + pad(this.getMinutes()) +
':' + pad(this.getSeconds()) +
'.' + (this.getMilliseconds() / 1000).toFixed(3).slice(2, 5) +
'Z';
};
})();
请参阅:mozilla.org toISOString文档
我刚刚修改了