我有一个 JavaScript 方法,可以获取当前日期并返回其通用时间。下面是代码:
function calUTCTime(offset) {
var currentDate = new Date();
var utc = currentDate.getTime() - (currentDate.getTimezoneOffset() * 60000);
var result = new Date(utc + (3600000 * offset));
return result .toLocaleString();
}
上面的代码返回错误的日期,它用月份替换日期,我的系统中的日期格式是dd-MM-yyyy
,操作系统是Windows 8。我在其他系统上尝试过,日期是正确,但在我的系统上是错误的。请分享建议。
最佳答案
这正是我对 .toLocaleString()
的期望。浏览器从操作系统确定您的语言(或“区域设置”),并使用它来选择如何输出字符串。如果您想要通用的人类可读日期格式,请尝试使用简单的 .toString()
。
如果您想完全控制日期的格式,请尝试像 moment.js 这样的库。例如,上面的代码可以压缩为:
return moment().utc().format("YYYY-MM-DD"); // "2014-09-02"
还有另一篇文章总结了两种方法之间的差异:JavaScript: Difference between toString() and toLocaleString() methods of Date
关于Javascript 方法 Date() 在我的系统上返回错误的日期(2 月 9 日而不是 9 月 2 日),,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622512/