toLocaleTimeString()返回24小时或12小时的时间

toLocaleTimeString() returns 24hr or 12hr time?

本文关键字:12小时 时间 24小时 返回 toLocaleTimeString      更新时间:2023-09-26

据我所知,我的代码工作得很好(尽管作为业余编码员,我愿意改进),但是我办公室里有一台机器似乎和其他所有机器都不一样。

在那台PC上,我的脚本可以在FireFox上运行,但在Chrome上不行。

代码:[根据一天中的时间以及是周末还是工作日,它隐藏或显示两个div]

var d = new Date();
var t = d.toLocaleTimeString();
var day = d.getDay()%6;
if (t < "08:30:00" || t > "17:30:00" || day == 0 ) {
    document.getElementById("div1").style.display = "none";
    document.getElementById("div2").style.display = "inline";
  } else {
    document.getElementById("div1").style.display = "inline";
    document.getElementById("div2").style.display = "none";
} 

我面临的问题是在Chrome上这台特定的计算机它是错误的,显示/隐藏相反的div应该显示/隐藏。

我的问题:

我计算时间是否正确/使用了正确的函数等等?

我的方法与现代相当最新的浏览器兼容吗?

谢谢。

toLocaleTimeString()将在不同的语言环境中有另一个实现。你不应该用它来查看时间。仅用于向用户显示时间。

你可能想看看这个

您可以使用getHours()getMinutes()来检查时间。

你也可以这样做:

var t1 = new Date(d);
t1.setHours(8);
t1.setMinutes(30);
t1.setSeconds(0);
var t2= new Date(d);
t2.setHours(17);
t2.setMinutes(30);
t2.setSeconds(0);
var day = d.getDay()%6;
if (d < t1 || d > t2 || day == 0 ) {
    document.getElementById("div1").style.display = "none";
    document.getElementById("div2").style.display = "inline";
  } else {
    document.getElementById("div1").style.display = "inline";
    document.getElementById("div2").style.display = "none";
}