在unix时间戳中获取moment.js时刻0

时间:2013-11-11 14:58:50

标签: javascript momentjs

我试图使用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,因为时刻(0)似乎没有给我一些天,小时,秒和什么都是0的时刻,以及用moment.js格式转换为unix时间戳0的时刻' X' (link

回应评论: 通常,时间选择器用于选择特定日期/日的时间。时间戳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。或者timedelta。当时间超过24小时时,Unfortunatley会失败。因为时刻(0).utc()。days()等于4而不是0。

不确定为什么这个WHY是相关的,当出于各种原因我能想到的时刻(0).utc()。days()应该是0而不是4 ...

1 个答案:

答案 0 :(得分:3)

我认为你遇到了时刻检测到你的问题。如果你做了

moment(0).toISOString() 

您应该看到所有日期等等。您可以通过执行类似

的操作将时区设置为UTC
var a = moment(0);
a.utc();
a.toString()

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

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

相关问题