获取时刻.js unix 时间戳中的时刻 0

Getting moment.js moment 0 in unix timestamp

本文关键字:时刻 unix js 获取 时间戳      更新时间:2023-09-26

我正在尝试使用moment.js进行与python timedelta类似的计算。

我遇到的问题是:

var d = moment(0);
d
Moment {_i: 0, _f: undefined, _l: undefined, _isUTC: false, _d: Thu Jan 01 1970 02:00:00 GMT+0200 (EET)…}
_d: Thu Jan 01 1970 02:00:00 GMT+0200 (EET)
_f: undefined
_i: 0
_isUTC: false
_l: undefined
__proto__: Object
d.hours();
2
d.days();
4

我怎样才能得到等于 unix 时间戳 0 的时刻时间戳,因为 moment(0) 似乎没有给我天、小时、秒等都是 0 的时刻,并且它转换为带有时刻的 unix 时间戳 0.js格式为"X"(链接)

针对评论:通常,时间选择器用于选择特定日期/日期的时间。而时间选择器 14:35 的值通常被解释为 14 小时 35 分钟。您可以使用相同的选取器让用户选择 PERIOD(或 timedelta)而不是 TIME。这意味着某事之间有 14 小时 35 分钟,或者某事需要那个时间......等等...

您可以使用 moment.js 来模拟该功能。因为:

moment(0).utc().hours == 0
moment(0).utc().minutes == 0
moment(0).utc().seconds == 0

您可以添加(或让用户添加)小时,分钟,秒来选择时间而不是PERIOD。或者时间三角洲。不幸的是,当周期超过 24 小时时,这将失败。因为 moment(0).utc().days() 等于 4 而不是 0。

不知道为什么这个为什么是相关的,当出于各种原因我可以想到 moment(0).utc().days() 应该是 0 而不是 4...

我认为您在那一刻检测到您的时区遇到了问题。 如果你这样做

moment(0).toISOString() 

您应该看到所有日期的 0 等。 您可以通过执行以下操作将时区设置为 UTC

var a = moment(0);
a.utc();
a.toString()

a.toString 现在应显示为正确的时区。

此外,moment(0).utc().days()是"星期三"(或当前的任何一天)。