MySQLに保存してあるタイムスタンプから、何秒経過しているのか表示するようなサンプルを作っております。
その経過秒数に応じて、制限時間を表示するようなものを作りたいです。
タイムスタンプは日本時刻で保存してあり、JSで現在時刻を取得するとUTCの基準時になるため変換する必要がありそうです。
こういった場合、どのように変換して値を渡せば良さそうでしょうか。
JSだけでのカウントダウンプログラムはできたのですが、DBを使っている都合上でどうしてもPHPとJSの連携をしたいです。
<script> var count = 25*60; //カウントダウンの数字を格納する変数 var min = 0; //残り時間「分」を格納する変数 var stp = null; //setInerval・clearInervalを制御する変数 var display; var dateStart; function count_start(start){ display = document.getElementById("default"); //dateStart = start; //dateStart = new Date().toLocaleString({ timeZone: 'Asia/Tokyo' }) min = parseInt(count / 60); sec = count % 60; display.innerHTML = ("00"+parseInt(min)).slice(-2) +":" + ("00"+parseInt(sec)).slice(-2); if(stp == null) { stp = setInterval(count_down,1000); } } //カウンドダウン表示 function count_down(){ var dateNow = new Date(); //var dateNow = new Date().toLocaleString({ timeZone: 'Asia/Tokyo' }); //var diff = dateNow.getTime() - dateStart.getTime(); //var diff = dateNow.getTime() - dateStart; var diff = 100; //console.log(dateNow.getTime()); //console.log(dateStart); var test = count - (diff/ 1000); if(test < 0){ test = 0; display.innerHTML = "TIME UP!"; clearInterval(stp); } else { min = parseInt(test / 60); sec = test % 60; display.innerHTML = ("00"+parseInt(min)).slice(-2) +":" + ("00"+parseInt(sec)).slice(-2); } </script> <?php // エラーが発生していなければ $startTime = '2021-07-08 10:58:13'; if($startTime != null) { // 渡す値が違う echo '<script type="text/javascript"> count_start('.strtotime($startTime).'); </script>'; } ?>