以下代码提供错误的输出时间
<script type="text/javascript">
function validate()
{
var r = Date.parse(document.getElementById("dates").value);
var r1 = new Date(r);
document.write(r1);
return false;
}
</script>
<form name="myForm" method="post" onsubmit= "return(validate());">
Name: <input type="text" name="name"><br>
Date: <input type="datetime-local" id="dates" name="dates">
<br/>
<INPUT TYPE="submit" VALUE="Submit" >
</form>
提前谢谢。如果输入时间是9:30,则输出为11:00
答案 0 :(得分:1)
输出可能是正确的
<input type="datetime-local">
根据您的系统日期时间设置存储值(即:您的时区中的日期时间而不是UTC时间)。
因此,在通过Date.parse
读取值时,实际上是按照您的时区调整了毫秒数。即您的时区偏移量将从输入的日期时间中加/减,以获得绝对毫秒值
但是当您使用var r1 = new Date(r)
再次创建日期时,实际上是以给定的毫秒初始化日期,并将时区设置为系统时区。因此,由于Date.parse
的返回值,它将引入等于您的时区偏移的偏移量。
通过查看您的输入和输出,您的时区似乎是GMT + 1:30:)