如果我在兼容的瀏覽器(例如Chrome)中使用<input type="datetime-local" />
,則從此輸入獲得的值爲不帶時區的ISO時間戳,例如2015-01-31T23:50
使用javascript將日期時間本地輸入的值格式化爲用戶區域設置的字符串
然後我想根據用戶的區域設置格式化這個時間戳。例如,我在法國(UTC + 1)的時候,我想:31/01/2015 23:50
當我使用下面的代碼,時間戳被解釋爲UTC,我得到這個日期:1/2/2015 00:50 UTC+1
new Date(timestamp).toLocaleDateString(navigator.language, {
year: "numeric", month: "numeric", day: "numeric",
hour: "numeric", minute: "numeric",
timeZoneName: "short"
})
我可以使用new Date().getTimezoneOffset()
讀取時區偏移量,將其轉換爲字符串ISO時區,然後將其附加到時間戳,但對我來說似乎相當複雜。
什麼會更簡單,純js或jquery(沒有其他庫)的解決方案,以我想要的方式格式化時間戳?
「2015-01-31 23:50」時間戳不會在FF/Safari中解析,「2015-01-31T23:50」與解釋此小提琴http:// jsfiddle的解釋方式不同。 net/gfouquet/d0L8vnv8 /。我寧願使用便攜式解決方案 – gregfqt
我認爲你應該使用[moment.js](http://momentjs.com/)。這是一個非常強大的庫,用於解析和轉換日期。我提供的解決方案不應該是跨瀏覽器,因爲我之前發佈的不是標準格式。如果你想使用標準格式,那麼你應該使用偏移校正。也許你可以將字符串設置爲標準格式,並且可以跨瀏覽器工作。 – devconcept