首页 > 解决方案 > 输入类型=时间显示错误的时区

问题描述

当使用<input type="time">和设置valueAsDate浏览器的时间时,会显示 GMT 时间而不是本地时间,有没有办法改变这种行为?我希望浏览器显示当地时间。

如果您不是 GMT 时间,那么您应该看到输入中的小时与p元素中的不同

(我在 Chrome 和 Firefox 中试过这个)

let date = new Date;
document.querySelector("input").valueAsDate = date;
document.querySelector("p").innerText = date;
<input type="time">
<p></p>

标签: javascripthtml

解决方案


.toLocaleString可以在这里帮忙:

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;
<input type="time">
<p></p>

我在 dev.to 上写了一篇关于这个问题的小文章。


推荐阅读