将UNIX时间戳转换为日期时间(javascript)

Convert UNIX timestamp to date time (javascript)

本文关键字:时间 javascript 日期 UNIX 时间戳 转换      更新时间:2023-09-26

时间戳:

1395660658

代码:

//timestamp conversion
exports.getCurrentTimeFromStamp = function(timestamp) {
    var d = new Date(timestamp);
    timeStampCon = d.getDate() + '/' + (d.getMonth()) + '/' + d.getFullYear() + " " + d.getHours() + ':' + d.getMinutes();
    return timeStampCon;
};

这将根据时间格式正确转换时间戳,但日期始终为:

17/0/1970

为什么——欢呼?

您必须乘以1000,因为自epoch(即1970年1月1日(以来,JavaScript计数以毫秒为单位,而不是以秒为单位:

var d = new Date(timestamp*1000);

参考

function convertTimestamp(timestamp) {
    var d = new Date(timestamp * 1000), // Convert the passed timestamp to milliseconds
        yyyy = d.getFullYear(),
        mm = ('0' + (d.getMonth() + 1)).slice(-2),  // Months are zero based. Add leading 0.
        dd = ('0' + d.getDate()).slice(-2),         // Add leading 0.
        hh = d.getHours(),
        h = hh,
        min = ('0' + d.getMinutes()).slice(-2),     // Add leading 0.
        ampm = 'AM',
        time;
    if (hh > 12) {
        h = hh - 12;
        ampm = 'PM';
    } else if (hh === 12) {
        h = 12;
        ampm = 'PM';
    } else if (hh == 0) {
        h = 12;
    }
    // ie: 2014-03-24, 3:00 PM
    time = yyyy + '-' + mm + '-' + dd + ', ' + h + ':' + min + ' ' + ampm;
    return time;
}

您可以通过调用convertTimestamp('1395660658') 来获取值

因为您的时间以秒为单位。Javascript要求自epoch以来以毫秒为单位。把它乘以1000,它应该是你想要的。

//time in seconds
var timeInSeconds = ~(new Date).getTime();
//invalid time
console.log(new Date(timeInSeconds));
//valid time
console.log(new Date(timeInSeconds*1000));
const timeStamp = 1611214867768;
const dateVal = new Date(timeStamp).toLocaleDateString('en-US');
console.log(dateVal)