Momentjs isDST函数没有返回正确的结果

时间:2018-04-03 10:25:38

标签: javascript momentjs

我正在尝试检测我的日期是否在DST范围内。我要做的是遵循文档:https://momentjs.com/docs/#/query/is-daylight-saving-time/

以下代码始终返回false

import moment from 'moment';

console.log(moment('2020-12-31').isDST());
console.log(moment('2027-05-23').isDST());

console.log(moment([2011, 2, 12]).isDST());
console.log(moment([2018, 8, 14]).isDST());

console.log(moment().isDST());

现场演示可在此处获取:https://repl.it/repls/WatchfulDelayedLight

无法理解这里的错误。

1 个答案:

答案 0 :(得分:1)

您可以使用moment-timezone而不是专门设置时区。否则它将使用机器上的本地时区,似乎它没有DST。

import moment from 'moment-timezone';

console.log(moment.tz('2020-12-31', 'Europe/London').isDST());
console.log(moment.tz('2027-05-23', 'Europe/London').isDST());

console.log(moment.tz([2011, 2, 12], 'Europe/London').isDST());
console.log(moment.tz([2018, 8, 14], 'Europe/London').isDST());

console.log(moment.tz(null, 'Europe/London').isDST());