我有一个毫秒整数,我试图将其转换为格式为yyyy MM dd
的可读日期(2014-08-06)。
var maxDate = 1407267771429;
maxDate = new Date(maxDate);
maxDateFinal = maxDate.toString('yyyy MM dd');
虽然maxDateFinal
似乎总是等于Wed Aug 06 2014 05:42:51 GMT+1000 (E. Australia Standard Time)
我在我的小提琴中每次调用后都添加console.log()
来演示变量的变化,尽管似乎toString()
对日期完全没有任何作用。
答案 0 :(得分:3)
JavaScript没有内置日期格式。你可以自己做,但也有一些库。
function pad(s, width, character) {
return new Array(width - s.toString().length + 1).join(character) + s;
}
var maxDate = new Date(1407267771429);
var maxDateFormatted =
maxDate.getFullYear() +
' ' + pad(maxDate.getMonth() + 1, 2, '0') +
' ' + pad(maxDate.getDate(), 2, '0');
答案 1 :(得分:3)
不幸的是,JavaScript Date
没有使用toString()
方法(或任何其他方法)提供任意格式。要以yyyy-mm-dd
格式获取日期,您可以使用toISOString()
,然后使用substr(start, length)
方法。例如:
var maxDate = new Date(1407267771429);
var isoDate = maxDate.toISOString(); // 2014-08-05T19:42:51.429Z
isoDate.substr(0, 10); // 2014-08-05
这适用于所有主流浏览器,包括IE9 +。要支持IE8和旧版浏览器,您可以执行以下操作:
function toISODate(milliseconds) {
var date = new Date(milliseconds);
var y = date.getFullYear()
var m = date.getMonth() + 1;
var d = date.getDate();
m = (m < 10) ? '0' + m : m;
d = (d < 10) ? '0' + d : d;
return [y, m, d].join('-');
}
或者你可以看一下像Moment.js(http://momentjs.com/)或jquery-dateFormat(https://github.com/phstc/jquery-dateFormat)这样的东西。