使用moment.js将ISO 8601转换为Unix,但不考虑偏移量

时间:2016-04-17 18:21:56

标签: momentjs unix-timestamp iso8601

我尽可能地阅读了文档,但无法解决这个问题。

我有一个日期/时间,我从Bootstrap DateTime Picker获得这样的ISO 8601字符串:

2016-04-01T22:00:00+01:00

该字符串是在日期/时间选择器中选择4月1日晚上10点的结果。

我想将其转换为存储在db

中的unix时间戳

当我使用时:

moment(date).format('X')

我得到以下unix时间戳:1459544400

这与2016-04-01T21:00:00+00:00相关,这比我选择的时间晚1小时。无论我做什么,我似乎无法获得unix时间戳来考虑偏移量。任何人都可以帮助我,告诉我这里缺少什么?

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

一小时的差异是由于夏令时,根据定义,它不会反映在Unix时间戳中。

您可能需要考虑moment-timezone.js来应对DST的时间转换。

答案 1 :(得分:0)

您可以在JavaScript中使用Date.parse()

const isoDate = new Date();
const convertToUnix = Date.parse(isoDate.toISOString());