使用<input type="time">
并用valueAsDate
设置时间时,浏览器以GMT而不是本地时间显示时间,是否可以更改此行为?我希望浏览器显示本地时间。
如果您不使用格林尼治标准时间,则应该看到输入的小时与p
元素中的小时不同
(我在Chrome和Firefox中尝试过此操作)
let date = new Date;
document.querySelector("input").valueAsDate = date;
document.querySelector("p").innerText = date;
<input type="time">
<p></p>
答案 0 :(得分:1)
这是预期的行为。根据{{3}}的HTML规范:
在给定Date对象输入的情况下,将Date对象转换为字符串的算法如下:返回一个有效的时间字符串,该字符串代表由input表示的UTC时间分量。
如果要显示本地化的时间字符串,应首先尝试转换为字符串(请参见),或使用toLocaleTimeString。
答案 1 :(得分:0)
要获取本地时间,您应该创建date
对象并在输入字段中设置小时和分钟。请检查我的解决方案。
$(document).ready(function(){
setInterval(updateTime,1000);
function updateTime(){
//create date instance to get now time
var date = new Date();
hours = date.getHours();
minutes = date.getMinutes();
seconds = date.getSeconds();
//add extra zero if the minutes is less than 2 digits
if(hours < 10){
hours = '0' + hours;
}
//add extra zero if the minutes is less than 2 digits
if(minutes < 10){
minutes = '0' + minutes;
}
$('input[type="time"]').each(function(){
$(this).attr({'value': hours + ':' + minutes + ':' + seconds});
});
//document.getElementById("myTime").value = hours+":"+minutes+":"+seconds;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="myTime" type='time'/>
<p></p>
答案 2 :(得分:0)
select * from X where b in (111,777,888)
在这里可以提供帮助:
.loLocaleString
let date = new Date;
document.querySelector("input").value = date.toLocaleString("sv-SE", {
hour: "2-digit",
minute: "2-digit",
second: "2-digit"
});
document.querySelector("p").innerText = date;
我写了一篇有关此问题on dev.to的小文章。