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

bob*_*000 7 javascript

时间戳:

1395660658
Run Code Online (Sandbox Code Playgroud)

码:

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

    return timeStampCon;
};
Run Code Online (Sandbox Code Playgroud)

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

17/0/1970
Run Code Online (Sandbox Code Playgroud)

为什么 - 干杯?

Den*_*ret 26

自纪元(即01/01/1970)以来,你需要乘以1000,以千分之一秒为单位,而不是秒:

var d = new Date(timestamp*1000);
Run Code Online (Sandbox Code Playgroud)

参考


小智 8

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;
}
Run Code Online (Sandbox Code Playgroud)

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