有没有办法在momentjs中检查一个纪元是否含糊不清?
在America/Chicago
区域中,2011-11-06 00:00
不明确,但2011-11-06 01:00
可以是中央夏令时( CDT )或储蓄时间( CST < / em>的)。
答案 0 :(得分:3)
我觉得这样的事情会奏效:
function hasAmbiguousWallTime(m) {
var t = [60, -60, 30, -30];
var a = t.map(function(x) { return moment(m).add(x, 'm').format('HH:mm'); });
return a.indexOf(m.format('HH:mm')) > -1;
}
示例:
hasAmbiguousWallTime(moment.tz("2011-11-06 01:00", "America/Chicago")) // true
hasAmbiguousWallTime(moment.tz("2011-11-06 00:00", "America/Chicago")) // false
请注意,对于偏移量不是30或60分钟更改的转换,这可能会失败,这在历史上已经发生过。更好的实现将测试时刻 - 时区数据中的已知转换点,或者针对本地派生的时刻扫描它们。也就是说,上述内容足以满足大多数现代用途。