Javascript将秒转换为日期对象

jha*_*fen 25 javascript datetime

如何在javascript中将秒转换为日期时间对象.

例子:

1.3308313703571

1.6324722385401

这是从一系列点开始的.我理解1.23323多秒,但我不能改变值,从api中拉出来.

UVM*_*UVM 57

你可以尝试这样:

function toDateTime(secs) {
    var t = new Date(1970, 0, 1); // Epoch
    t.setSeconds(secs);
    return t;
}
Run Code Online (Sandbox Code Playgroud)

关于纪元日期的信息.

  • 在我的情况下,由于时区信息似乎很奇怪,因此该答案无法给出正确的答案。我尝试了@ariscris的解决方案,更改为“ t.setSeconds(secs);”。到“ t.setTime(secs * 1000)”会给我正确的结果。 (3认同)
  • `new Date(0)` 将日期设置为当地时间 1970 年 1 月 1 日。所以`t.setSeconds(secs)` 会在本地时间到达当前时间。如果 `secs` 是以秒为单位的 UTC 时间戳(通常由服务器发送),则效果很好。 (3认同)

Art*_*sun 14

您可以将unix时间戳毫秒作为参数传递给Date构造函数:

var secs = 30;
new Date(secs * 1000);
Run Code Online (Sandbox Code Playgroud)

输出:

Date 1970-01-01T00:00:30.000Z
Run Code Online (Sandbox Code Playgroud)

  • 这个答案干净多了! (3认同)

sro*_*e26 5

@UVM 的回答很有帮助,但如果您正在处理时区(即 UTC 与本地时间),则有点不完整。对于时区,使用 Date.UTC 和 Date.setUTCSeconds 从 UTC 开始以获得真正的 UTC 日期和时间。

function toDateTime(secs) {
    var t = new Date(Date.UTC(1970, 0, 1)); // Epoch
    t.setUTCSeconds(secs);
    return t;
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用像 Moment 这样的库将其转换/格式化为本地时区。