javascript:从unix时间戳获取月/年/日

时间:2012-02-28 00:47:12

标签: javascript timestamp

我有一个unix时间戳,例如1313564400000.00。如何将其转换为Date对象并相应地获得月/年/日?以下内容不起作用:

function getdhm(timestamp) {
        var date = Date.parse(timestamp);
        var month = date.getMonth();
        var day = date.getDay();
        var year = date.getYear();

        var formattedTime = month + '/' + day + '/' + year;
        return formattedTime;

    }

3 个答案:

答案 0 :(得分:21)

var date = new Date(1313564400000);
var month = date.getMonth();

这将在用户浏览器的当地时间。

答案 1 :(得分:7)

而不是使用parse(用于将日期字符串转换为Date),只需将其传递给Date构造函数:

var date = new Date(timestamp);

当然,请确保您的时间戳为Number

答案 2 :(得分:1)

一个古老的问题,但没有一个答案似乎完整,还有2020年的更新:

例如:(如果使用微秒精度,例如performance.now(),则可能会有一个小数)

let timestamp = 1586438912345.67;

我们有:

var date = new Date(timestamp); // Thu Apr 09 2020 14:28:32 GMT+0100 (British Summer Time)
let year = date.getFullYear(); // 2020
let month = date.getMonth() + 1; // 4 (note zero index: Jan = 0, Dec = 11)
let day = date.getDate(); // 9

如果您希望月份和日期始终是两位数字的字符串(例如“ 01”):

let month = (date.getMonth() + 1).toString().padStart(2, '0'); // "04"
let day = date.getDate().toString().padStart(2, '0'); // "09"

为了扩展完整性:

let hour = date.getHours(); // 14
let minute = date.getMinutes(); // 28
let second = date.getSeconds(); // 32
let millisecond = date.getMilliseconds(); // 345
let epoch = date.getTime(); // 1586438912345 (Milliseconds since Epoch time)

此外,如果您的时间戳实际上是要开始的字符串(例如,可能来自JSON对象):

var date = new Date(parseFloat(timestamp));

更多信息here(2017年)。