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