はい、レストランのウェブサイトがあります。現在、JavaScriptに単純なifステートメントがあり、時刻に応じてテキストの一部を「開いていた」から「閉じていた」に変更しています。ただし、携帯電話でブラウザを閉じた場合でも、技術的にはバックグラウンドで開いています。したがって、ブラウザを再度開くと、ページを更新するまで閉じられたと表示されるはずの時間の後に開いたと表示されます。リアルタイムで更新する方法を見つけたいと思います。setIntervalとsetTimeoutを使用して、これとwhileループを実行しようとしましたが、これまでのところ何もありません。つまり、setIntervalを使用すると、時間を印刷でき、リアルタイムで増分します。では、なぜ1秒ごとにifステートメントを実行して、目的のテキストを出力できないのでしょうか。
これが今のところそれを表示する私のコードです。
var date = new Date().getHours();
if ((date > 9) && (date < 20) && (day != 0)) {
y="<span style=\"color:#07ed11\">We're Open!</span>";
}
else {
y="<span style=\"color:#fc4b1c\">Sorry we're Closed.</span>";
}
document.getElementById("open-close").innerHTML=y;
リアルタイムで印刷して、適切なタイミングで開いた状態から閉じた状態に変化するのを確認できるようにしたいだけです。