2
有没有方法可以检查时代是否模糊或不在时刻?瞬间时区 - 检测给定时间是否含糊
在America/Chicago
区,2011-11-06 00:00
一点也不含糊,但2011-11-06 01:00
可以是中部夏令时间(CDT )或节约时间(CST )。
有没有方法可以检查时代是否模糊或不在时刻?瞬间时区 - 检测给定时间是否含糊
在America/Chicago
区,2011-11-06 00:00
一点也不含糊,但2011-11-06 01:00
可以是中部夏令时间(CDT )或节约时间(CST )。
我认为像这样将工作:
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分钟的变化,已经发生的历史上。更好的实现将测试瞬时时区数据中已知的转换点,或者根据本地派生的时刻对其进行扫描。这就是说,以上对于大多数现代用法来说已经足够了。
_ambiguous_是什么意思?对于特定时刻的对象,如果处于夏令时,可以使用['isDST()'](http://momentjs.com/docs/#/query/is-daylight-saving-time/)进行编辑。无论如何,我担心你的问题有点不清楚,你必须编辑以进一步解释你需要做的事情。 – VincenzoC
谢谢@VincenzoC做了编辑,'isDST()'会告诉我日期是否在DST范围内,而不是时间。 –
你会如何定义歧义?以及你究竟想通过发现来达到什么目的,你能否以更详细的方式解释你的使用案例 – MGA