我有momentjs和moment-timezone。如何將特定時間的時區設置爲特定時區,並使用momentjs忽略瀏覽器的時區?
例如,我有這個字符串作爲我的時間:
var myTime = "11/20/2016 8:15 PM";
現在我想告訴momentjs認爲「數值指明MyTime」是「歐洲/莫斯科」時區是UTC + 3(忽略了瀏覽器的時區,其是UTC + 3:30)。
然後我想改變UTC的時間。
所以我想「指明MyTime對應」是20-11-2016 20:15:00+3:00
,當我將其更改爲UTC(),我希望它給我20-11-2016 17:15:00
我所做的就是這是什麼:
首先我設置默認的時區:moment.tz.setDefault('Europe/Moscow');
然後我做了這一點:
moment("11/20/2016 8:15 PM").utc().format()
這段代碼做了些什麼:2016-11-20T16:45:00+00:00
爲什麼?因爲它首先檢查了我的瀏覽器的UTC + 3:30時區。更改「數值指明MyTime」到歐洲/莫斯科時區,這樣moment("11/20/2016 8:15 PM").format()
將返回"2016-11-20T19:45:00+03:00"
(減去30分鐘的數值指明MyTime),然後把它改爲UTC導致2016-11-20T16:45:00+00:00
所以我的問題是這樣的:
如何設置一個11/20/2016 8:15 PM
的時區忽略瀏覽器的時區,然後將其更改爲UTC。
如果我的問題還不清楚,請讓我知道,所以我給更多的信息。
當使用非ISO 8601格式的字符串時,您必須使用[時刻分析指定格式](http://momentjs.com/docs/#/parsing/string-format/)。因此,請使用'moment(「2016/11/20 8:15 PM」,'MM/DD/YYYY h:mm A')'而不是'moment(「2016/11/20 8:15 PM」)''。也許添加一個片段或小提琴顯示你的問題可以進一步澄清你的問題。 – VincenzoC