Javascript 识别给定的时间戳

Javascript 识别给定的时间戳,javascript,node.js,timestamp,timezone,Javascript,Node.js,Timestamp,Timezone,换算时间为:2016/06/21 02:14:33 未经转换的时间戳:2346273 API响应返回未经转换的时间戳,但无法理解用于获取2016/06/21 02:14:33人类可读格式的时间戳转换。来自您的评论: LISK Coin的API正在返回这些值 这很有帮助。尽管在LISK的文档中不清楚,但还是找到了一些搜索结果,其中说: lisk中的时间戳是自创建lisk genesis块以来的秒数。Lisk genesis区块于2016年5月24日创建 然后,它继续显示精确的起源日期2016-05

换算时间为:2016/06/21 02:14:33 未经转换的时间戳:2346273

API响应返回未经转换的时间戳,但无法理解用于获取2016/06/21 02:14:33人类可读格式的时间戳转换。

来自您的评论:

LISK Coin的API正在返回这些值

这很有帮助。尽管在LISK的文档中不清楚,但还是找到了一些搜索结果,其中说:

lisk中的时间戳是自创建lisk genesis块以来的秒数。Lisk genesis区块于2016年5月24日创建

然后,它继续显示精确的起源日期
2016-05-24T17:00:00.000Z
(UTC)

因此,我们可以这样做:

var dt = new Date("2016-05-24T17:00:00.000Z");  // start with the LISK genesis date
dt.setTime(dt.getTime() + (2346273 * 1000));    // add your timestamp * 1000 (seconds to ms)
现在,您有了一个正确表示此时间点的
Date
对象。如果对其调用
.toString()
,它将使用计算机的本地时区生成输出字符串

对我来说,在美国太平洋时区:

dt.toString()
// "Mon Jun 20 2016 13:44:33 GMT-0700 (Pacific Daylight Time)"
如果我将时区更改为印度,那么我将获得您提供的日期和时间:

dt.toString()
// "Tue Jun 21 2016 02:14:33 GMT+0530 (India Standard Time)"
我还可以在不改变系统时区的情况下,通过直接提供印度的地区代码和时区ID,以更紧凑的格式获得此信息:

dt.toLocaleString('en-IN', {timeZone: 'Asia/Kolkata'})
// "21/6/2016, 2:14:33 am"
或者,如果您想要ISO 8601格式的准确UTC时间戳,则

dt.toISOString()
// "2016-06-20T20:44:33.000Z"

还有一件事需要注意——你链接到的文档中没有提到这个genesis时间戳。在这些文档中,它说这个值是一个常规的Unix时间戳。Unix时间戳基于
1970-01-01T00:00:00.000Z
,而不是
2016-05-24T17:00:00.000Z
。因此,要么他们的文档是错误的,要么他们引用的是比您使用的更新的内容。

哪个API返回此值?它有文件吗?你能再举些例子吗?你是如何确定这些值是如何关联的?@MattJohnson Pint,LISK Coin的API正在返回这些值。这些额外的信息肯定会有帮助:p不知怎的,我知道OP的本地时区将是印度!!