【问题标题】:16 digit timestamp to Javascript date format16 位时间戳到 Javascript 日期格式
【发布时间】:2017-06-08 22:19:52
【问题描述】:

我从服务器得到一个 16 位的时间戳。 例如:我从服务器获得“1485157072432000”,当我使用时间戳转换器时,它显示为 Wed Oct 03 49032 04:43:52 GMT+0530(印度标准时间)

但是,当我从 16 位数字中删除最后 3 位数字时,我得到了准确的时间。但我从服务器获得 16 位时间戳。从 16 位时间戳中获取准确时间的方法是什么??

【问题讨论】:

  • 你能告诉我们你是如何创建日期的吗?因为它工作正常
  • new Date(1485239482274) 2017 年 1 月 24 日星期二 06:31:22 GMT+0000(GMT 标准时间)
  • @BenG OP 来自印度,因此是 12:01:22。是的,时间戳没有问题。我猜`时间戳转换`搞砸了。
  • 你看过这个了吗? stackoverflow.com/a/3219182/1133284是C#语言的问题,但概念是一样的!
  • @SaiHanuman 您在使用 Node.JS 开发您的 Web 应用程序吗?

标签: javascript timestamp


【解决方案1】:

由于您需要微秒级精度,我想唯一的解决方案是使用自定义对象来存储您需要的所有信息。

我建议您使用由 GitHub 用户 kamikane 开发的 this utility 之类的东西。

特别需要他开发的parse函数:

function parse(nano) {

    var ms = nano / 1000;
    var ss = ms / 1000;
    var mm = ss / 60;
    var hh = mm / 60;
    var dd = hh / 24;

    var microseconds = Math.round((ms % 1) * 1000);
    var milliseconds = Math.floor(ms % 1000);
    var seconds = Math.floor(ss % 60);
    var minutes = Math.floor(mm % 60);
    var hours = Math.floor(hh % 24);
    var days = Math.floor(dd);

    return { microseconds: microseconds, milliseconds: milliseconds, seconds: seconds, minutes: minutes, hours: hours, days: days, toString: toString };
};

示例用法:

parse(1485157072432010);

{ microseconds: 10, milliseconds: 432, seconds: 52, minutes: 37, hours: 7, days: 17189 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 2021-10-13
    • 2017-12-19
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多