我试图使用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 ...
答案 0 :(得分:3)
我认为你遇到了时刻检测到你的问题。如果你做了
moment(0).toISOString()
您应该看到所有日期等等。您可以通过执行类似
的操作将时区设置为UTCvar a = moment(0);
a.utc();
a.toString()
a.toString现在应该显示为正确的时区。
此外,moment(0).utc().days()
是“星期三”(或当前的任何一天)。