我有一個表格,可以使用該表格保存日程安排日期。我希望能夠將我的發送日期轉換爲utc格式。我有類似:以UTC保存並在當地時間顯示當前時間
<input type="hidden" name="scheduled_publication[publication_date]" value="2015/11/27">
<input type="hidden" name="scheduled_publication[time]" value="13:00">
但問題是,如果我改變與瀏覽器的時區這個值的偏移量,我也有時更改日期值。凌晨01點的時間表和-02:00時間偏移量將改變日期。 最簡單的情況是獲取兩個當前值並用momentjs處理它們嗎?
其他問題。如何使用momentjs以正確的時區顯示時間。原始日期呈現如下:2015-11-16 16:47:29 +0100
。我嘗試使用.utc
method。
> moment('2015-11-16 16:47:29 +0100').format("dddd, MMMM Do YYYY ha")
"Monday, November 16th 2015 4pm"
> moment.utc('2015-11-16 16:47:29 +0100').format("dddd, MMMM Do YYYY ha")
"Monday, November 16th 2015 4pm" #should be 3pm
爲什麼本地不適用於第一個命令?當我做
> moment('2015-11-16 16:47:29 +0100')
Moment {_isAMomentObject: true, _i: "2015-11-16 16:47:29 +0100", _isUTC: false, _locale: Locale, _d: Mon Nov 16 2015 16:47:29 GMT+0100 (CET)…}
時區似乎被認可。
當你在最後工作的時候很難保持一致。
編輯:
隨着意見和答覆。首先將數據插入以pickadate和pickatime作爲計算機時間的EST,然後將值(11月20日23小時)設置並轉換它們。
> var date = $("[name='scheduled_publication[publication_date]']").val()
> var time = $("[name='scheduled_publication[time]']").val()
> $("[name='scheduled_publication[time]']").val(moment(date + ' ' + time).toISOString())
[<input type="hidden" name="scheduled_publication[time]" value="2015-11-18T14:00:00.000Z">]
除了這個相當醜陋的JavaScript。這對我來說似乎很好。值的返回值是UTC。適合我的數據庫。
保存並在UTC格式返回(毫秒自Unix紀元會做)。它只是在客戶端上顯示本地時區(客戶端機器)時,會自動用於調整UTC日期。您不必自己處理時區,除非特殊情況。 –
感謝您的回答。所以爲了顯示,沒關係。我只需要設法從用戶插入的內容創建正確的utc時間。 – Mio
您將不得不知道用戶輸入的模式或部分。見答案。 –