首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >17位时间戳之差

问17位时间戳之差
EN

Stack Overflow用户
提问于 2018-07-12 09:21:19
回答 3查看 1.6K关注 0票数 0

目前,我正在Node.js中使用Node.js时区。,我想取两位17位时间戳之间的差额。例如,我有两个时间戳:20180712080000000 (YYYYMMDDHHmmssSSS),即2018/07/12 10:00:00 000和20180712060000000 (YYYYMMDDHHmmssSSS),即2018/07/12 08:00:00 000。如果我考虑这两个时间戳之间的差异,那么输出可能是20000000 (实际上应该是2小时)。如果我将两个时间戳的差( 20000000 )转换为小时,那么回答是5.56小时,但应该是2小时。

我是不是遗漏了什么?

请随时纠正我。

到目前为止我试过:

代码语言:javascript
复制
let starttime = 20180712060000000; // UTC + 2
let endtime =   20180712080000000; // UTC + 2
console.log("Difference is ",endtime-starttime);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-12 09:33:10

如果必须使用这种时间戳(17个字符长的字符串),则可以将它们转换为Date对象,如下所示:

​

代码语言:javascript
复制
    var date1 = '20180712060000000'
    var date2 = '20180712080000000'

    function timestampToDate(dateString) {
      return new Date(dateString.substring(0, 4), 
        parseInt(dateString.substring(4, 6)) - 1, 
        dateString.substring(6, 8), 
        dateString.substring(8, 10), 
        dateString.substring(10, 12), 
        dateString.substring(12, 14), 
        dateString.substring(14, 16))
    }

    var date1Object = timestampToDate(date1)
    var date2Object = timestampToDate(date2)
    
    var difference = Math.abs(date1Object - date2Object) // this will hold the difference in milliseconds
    var differenceInHours = difference / 36e5
    
    console.log(differenceInHours)

​

为了避免像这样剖析字符串,可以考虑使用时间库(https://momentjs.com/)

现在你可以做这样的事情:

代码语言:javascript
复制
var date1 = moment('20180712060000000', 'YYYYMMDDHHmmssSSS')
var date2 = moment('20180712080000000', 'YYYYMMDDHHmmssSSS')

var difference = moment.duration(date1 - date2).hours()
票数 2
EN

Stack Overflow用户

发布于 2018-07-12 09:25:34

您使用的数字是无效的时间戳。

您可以向Date构造函数提供的时间戳是自Epoch以来的毫秒数。

您可以使用date.getTime()从约会中获得它

代码语言:javascript
复制
let starttime = new Date("2018-07-12T06:00:00").getTime(); // assuming local TZ
票数 0
EN

Stack Overflow用户

发布于 2018-07-12 09:36:41

使用这个图书馆进行干净和更好的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51301799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档