2013-02-05 78 views
4

我試圖將<input type="date" />的值轉換爲實際的Javascript日期對象。這個例子是下面<input type =「date」/>使用新日期

new Date($('#myInput').val()); //where value of myInput is '2011-01-01' 

原來是

Fri Dec 31 2010 19:00:00 GMT-0500 (Eastern Standard Time) 

看來,日期是從UTC到EST(我認爲)轉換。反正有阻止這種轉換嗎?

例如:jsfiddle

+0

不,JS'日期'值無法轉換。如果您使用默認的'toString'方法,它只是與用戶時區一起輸出。價值本身是正確的。 – Bergi

回答

2

使用Date.prototype.toUTCString您的特定語言環境的日期轉換爲UTC

(new Date($('#myInput').val())).toUTCString() 
0

試試這個:或者

ver date = new Date(document.getElementById('myinput').value); 
date.setTime(date.getTime()+date.getTimezoneOffset()*60000); 

,使用getUTC*()功能。

+0

是的,應該總是使用UTC函數代替UTC,而不是錯誤的日期值。 – Bergi

+0

這個答案看起來正確。另外,第一行可以是「var date = document.getElementById('myinput').valueAsDate;」 –

+0

@ int32_t:不,它將日期設置爲錯誤的值。它只有*顯示*正確,因爲您也使用了錯誤的輸出方法。 – Bergi

相關問題