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

Yan*_*ang 14 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;

    }
Run Code Online (Sandbox Code Playgroud)

Jim*_*ler 22

var date = new Date(1313564400000);
var month = date.getMonth();
Run Code Online (Sandbox Code Playgroud)

等等

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

  • 警告:这不适用于所有情况。例如,1477958400000 是 2016 年 10 月 1 日。但是 new Date(1477958400000).getDate() 会给你 31!(取决于您当地的时区) (2认同)

Ada*_*rsh 8

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

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

let timestamp = 1586438912345.67;
Run Code Online (Sandbox Code Playgroud)

我们有:

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

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

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

为了扩展完整性:

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

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

var date = new Date(parseFloat(timestamp));
Run Code Online (Sandbox Code Playgroud)

或者现在:

var date = new Date(Date.now());
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请点击此处(2017)。


Jac*_*cob 7

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

var date = new Date(timestamp);
Run Code Online (Sandbox Code Playgroud)

当然,确保你的时间戳是Number.