HTML5时间输入显示比实际时间少1小时

时间:2012-11-16 12:04:41

标签: html5 time input

我正在尝试输入新Date()...

返回的当前时间
$('#TSE').val(new Date().toJSON().substring(11,16));

...在时间输入栏中:

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

该值的格式为hh:mm,并由输入字段接受。

问题在于它显示的比实际时间少<1小时

例如,如果新的Date()为 2012-11-16T11:59 ,则输入字段将显示 10:59

我遇到Safari Mobile(网络应用)的这个问题。我的时区是CET(GMT + 1)。我们几个星期前失去了DST。

谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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?