【问题标题】:Node js substract Timestamp [duplicate]节点js减去时间戳[重复]
【发布时间】:2019-12-19 13:12:13
【问题描述】:

我正在尝试在节点 js(谷歌云功能)中减去时间戳。 这是我的时间戳:

var currentTime = admin.database.ServerValue.TIMESTAMP.toString();
console.log(currentTime); //1537806936331

我想获取 currentTime - 8 小时。

我该怎么做? (我在云功能(firebase)中使用它)

提前感谢您的帮助和努力!

【问题讨论】:

  • @matsev OP 不想减去日期,OP 想要的是减去时间戳。检查我的答案

标签: node.js firebase google-cloud-functions


【解决方案1】:

这个时间戳1537806936331 等于Monday, September 24, 2018 7:35:36.331 PM GMT+03:00 DST。你可以在这里找到:

https://www.epochconverter.com/

因此尝试以下方法:

let date = new Date(1537806936331); //Mon Sep 24 2018 19:35:36 GMT+0300 (Eastern European Summer Time)
let hours = date.getHours() - 8; //11

点击此处了解更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date


如果您想获取上述日期的时间戳,请尝试以下操作:

let date = new Date(1537806936331); //Mon Sep 24 2018 19:35:36 GMT+0300 (Eastern European Summer Time) //11
date.setHours(date.getHours() - 8); //11
let timeStamp = Date.parse(date);
console.log(timeStamp); //1537778136000

您可以使用Date.parse() 获取时间戳。

【讨论】:

  • 谢谢!我明白了,但是有没有一个函数会返回与此相同的格式:1537806936331
  • 你想把日期转换成时间戳吗?
  • 是的,我想在 1537806936331 减去 8 小时后以这种格式恢复。
  • 你为什么要这样做?时间戳被转换为日期,然后你可以使用 getHours 给你19 然后你减去它
  • 因为我的数据库需要该格式的时间戳...
【解决方案2】:

您拥有的时间戳是自纪元以来经过的毫秒数。这意味着您还可以使用毫秒的常规减法来获得 8 小时前的时间戳。

所以彼得的(正确)答案的更简单的版本是:

var currentTime = admin.database.ServerValue.TIMESTAMP;
var eightHoursAgo = currentTime - 8*60*1000;

8*60*1000 是 8 小时内的毫秒数。

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 2014-04-25
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多