【发布时间】:2020-06-25 17:43:35
【问题描述】:
我有这个代码:
const effectDateParsed = moment(
new Date( `${ effectDate.split( '-' )[2] }-${ effectDate.split( '-' )[1] }-${ effectDate.split( '-' )[0] }` ),
'Africa/Tunis',
);
const deadlineDateParsed = moment(
new Date( `${ deadlineDate.split( '-' )[2] }-${ deadlineDate.split( '-' )[1] }-${ deadlineDate.split( '-' )[0] }` ),
'Africa/Tunis',
);
let remainingMonths = deadlineDateParsed.diff( effectDateParsed, 'months' );
现在结果因笔记本电脑的时区而异。如果笔记本电脑的时区是非洲/突尼斯
remainingMonths = 6
如果在欧洲:
remainingMonths = 5
可能这也与时区无关,这是我测试的:
- 手动设置时区为非洲/突尼斯,差异是正确的
- 手动设置时区为欧洲/巴黎,时差不正确
- 从时刻删除时区设置并重试 1 + 2,结果与设置相同。
对此有什么想法吗?
编辑: 这是我正在测试的两个日期:2021/01/01 和 2020/07/01 (YYYY/MM/DD)
【问题讨论】:
-
我会考虑使用更强大的日期时间库
-
我会的,不幸的是这不取决于我
-
如果您有任何建议,我愿意在这里接受建议
标签: javascript node.js momentjs ejs