2012-11-16 73 views
0

我試圖輸入當前時間通過新的Date()返回的少1小時...HTML5時間輸入顯示比實際時間

$('#TSE').val(new Date().toJSON().substring(11,16)); 

......在時間的輸入字段:

<input type="time" id="TSE"> 

該值的格式爲hh:mm,並且被輸入字段接受。

問題是,它顯示的是比實際時間少了1小時

例如,如果新的Date()將2012-11-16T11:59,輸入框會顯示10:59

我使用Safari移動(Web應用程序)遇到此問題。我的時區是CET(GMT + 1)。幾星期前我們失去了DST。

謝謝。

+0

CET = UTC + 1順便說一句,嚴格來說:-) – Kos

回答

1
$('#TSE').val(new Date().toLocaleTimeString()); 
1

您顯示的時間不正確。這裏是發生了什麼:

> new Date().toJSON() 
'2012-11-16T12:08:42.914Z' 
> new Date().toJSON().substring(11,16) 
'12:08' 

'toJSON()日期轉換爲UTC和格式W/R/T ISO 8601。日期最後有'Z';這表示UTC。

這對於.toJSON()執行此轉換是有意義的,因爲這對於存儲或傳輸的日期進行歸一化是有益的。爲了在UI中顯示,最好使用其他格式化功能。

參見:Where can I find documentation on formatting a date in JavaScript?

+0

感謝。我正在使用toJSON(),因爲我「在某處看到它」。我嘗試過toString()並且可以以相同的方式提取時間和日期。 –