💡

パソコンの時刻がズレていてもJavaScriptの時間を正しくする

2022/09/15に公開

質問

JavaScriptで、設定した時刻(1:00、2:00丁度)になったらブラウザ上の文字を変更させたい場合、クライアント(パソコン)の時刻がズレていると影響を受けますか?

回答

影響を受けます。JavaScriptはクライアント(パソコン)の時刻を参照するからです。

このような場合には、サーバーの時刻も一緒にブラウザに送信します。

<html>
<head></head>
<body>
<h1>TEST</h1>
<script>
//  PHPでサーバーのUnixタイムをJavaScriptの変数に代入する
const time = <?= time() ?>;
console.log(time);

//  日時オブジェクトを作成し、Unixタイムをセットする
const date = new Date();
date.setTime(time * 1000); // JavaScriptは1000/1秒単位なので1000を掛ける
console.log(date);
</script>
</body>
</html>

Discussion