将unix时间戳转换为javascript日期时间的最佳方法

Best way to convert a unix timestamp to javascript date-time

本文关键字:时间 最佳 方法 日期 javascript unix 时间戳 转换      更新时间:2023-09-26

我一直遵循将Unix时间戳转换为JavaScript线程中的时间的答案,但看起来像个位数时间(0-9)被解析为它是。被接受的答案

// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp*1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();
// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

我们得到2:3:9而不是02:03:09。如何摆脱这种行为?还有谁能详细说明一下如何随着时间的推移得到上午/下午?

var formattedTime = ('0' + hours).substr(-2) + ':'
                + ('0' + minutes).substr(-2) + ':' 
                + ('0' + seconds).substr(-2);

我想我会把上午的部分留给你。按ctrl + shift + j,在控制台中运行代码

//                                 /*Year m-1 d h m s ms*/
unix_timestamp = Math.floor(new Date(2016,0,  1,5,5,0,0)/1000)

这可能更容易理解。我把它放得更近了

// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp*1000);
// Hours part from the timestamp
var amPm = date.getHours() >= 12?'AM':'PM'
// % is modulo which is the remainder after division || will change 0 to 12
// because 0 is falsey everything else will be left as it is
var hours = ("0" + ((date.getHours() % 12)||12)).substr(-2)
// Minutes part from the timestamp
var minutes = ("0" + date.getMinutes()).substr(-2)
// Seconds part from the timestamp
var seconds = ("0" + date.getSeconds()).substr(-2)
// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes+ ':' + seconds + ' '+ amPm

我认为你必须去掉substr -部分,因为值应该已经是正确的。

注意:您需要检查值是否已经大于9,因为当它大于9时,您不需要添加任何内容。

var d = new Date() //Is in milliseconds
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
console.log(hours + ":" + ((minutes < 10) ? "0" + minutes : minutes) + ":" + ((seconds < 10) ? "0" + seconds : seconds))

我想补充的是,这些问题可以很容易地解决,使用一个好的库,如moment.js