我需要格式化javascript日期以通過json發送到服務器。服務器預計時間根據這個例子javascript時區格式
2011-08-31T06:49:28.931 -0700
它方便地告訴我,當我試圖提交類似
2011-08-31T06:49:28.931 -07:00
我遇到的麻煩是格式與時區部分,-0700
。我一直在看Date API,並沒有看到指定時區格式的方法。我可以做d.getTimezoneOffset
,但它會返回240(我認爲我在EDT中是Im)。
所以,我可以將240轉換爲0400來表示4小時。然而,我擔心其他時區的正確性。我的問題是
1)如何將getTimezoneOffset()
的結果轉換爲所需的格式,以及如何確定標誌應該是什麼(這就是我擔心的部分)?
2)有沒有辦法讓日期對象本身的格式,所以我不必做任何自定義?如果我做d.toString()
我得到"Wed Aug 31 2011 09:48:27 GMT-0400 (EDT)"
,所以這裏的時區部分是我想要的格式。所以這可能是可能的。也許最好的解決方案是使用正則表達式來關閉時區d.toString()
...
3)額外信用:服務器需要某種標準的格式?使用match(/^.*GMT(-?\d*)/)
在數組的索引1處返回「-0400」。也許我應該使用它?我想知道這個正則表達式是否適用於符號背景下的所有時區。
您已經測試方法的toJSON()? –
@andrew你是什麼意思? 'toJson'返回類似於「2011-08-31T14:29:38.924Z」的東西,它似乎沒有包含任何時區信息 – hvgotcodes
(new Date(Date.now()))。toJSON()將日期輸出爲字符串「2011 -08-31T14:31:48.875Z「在格林尼治時區。 –