我正在尝试输入新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。
谢谢。
答案 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?