如何将毫秒转换为可读日期?

下列:

new Date(1324339200000).toUTCString() 

输出:

 "Tue, 20 Dec 2011 00:00:00 GMT" 

我需要它返回Dec 20 。 除了toUTCString()之外,还有更好的方法吗? 我正在寻找任何解析毫秒的方法,以返回一个人类可读的日期。

使用库Datejs,你可以非常优雅地完成它,使用toString 格式说明符 : http : //jsfiddle.net/TeRnM/1/ 。

 var date = new Date(1324339200000); date.toString("MMM dd"); // "Dec 20" 

您可以使用datejs并转换为不同的格式。 我测试了一些甲酸盐并且工作正常。

 var d = new Date(1469433907836); d.toLocaleString() // 7/25/2016, 1:35:07 PM d.toLocaleDateString() // 7/25/2016 d.toDateString() // Mon Jul 25 2016 d.toTimeString() // 13:35:07 GMT+0530 (India Standard Time) d.toLocaleTimeString() // 1:35:07 PM 

不,你需要手动完成。

 function prettyDate(date) { var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; return months[date.getUTCMonth()] + ' ' + date.getUTCDate() + ', ' + date.getUTCFullYear(); } console.log(prettyDate(new Date(1324339200000))); 

这是一个解决方案。 稍后您可以通过“:”拆分并获取数组的值

  /** * Converts milliseconds to human readeable language separated by ":" * Example: 190980000 --> 2:05:3 --> 2days 5hours 3min */ function dhm(t){ var cd = 24 * 60 * 60 * 1000, ch = 60 * 60 * 1000, d = Math.floor(t / cd), h = '0' + Math.floor( (t - d * cd) / ch), m = '0' + Math.round( (t - d * cd - h * ch) / 60000); return [d, h.substr(-2), m.substr(-2)].join(':'); } //Example var delay = 190980000; var fullTime = dhm(delay); console.log(fullTime); 

你只需几行纯js代码即可完成。

 var date = new Date(1324339200000); var dateToStr = date.toUTCString().split(' '); var cleanDate = dateToStr[2] + ' ' + dateToStr[1] ; console.log(cleanDate); 

12月20日返回。希望有所帮助。

lonesomeday的例子 (upvote回答不是这个)的基础上,我遇到了这个输出:

undefined NaN, NaN

 var datetime = '1324339200000'; //LOOK HERE function prettyDate(date) { var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; return months[date.getUTCMonth()] + ' ' + date.getUTCDate() + ', ' + date.getUTCFullYear(); } console.log(prettyDate(new Date(datetime))); //AND HERE 

我只是测试了它,它工作正常

 var d = new Date(1441121836000); 

数据对象有一个构造函数,它以毫秒为参数。