質問: 初回アクセスしたら3日後にカウントが終了するタイマーをつくりたいです。 2回目に訪問しても初回からのタイマーが表示されて 3日後には「受付は終了しました」と別ページに飛ばして表示させたいです。 初めての訪問者にはすべて3日後に終了するようにしたいので、 それぞれ、終了日が違います。 ・・・・というカウントダウンタイマーをJavaScriptで作りたいです。 よろしくお願い致します。
回答: No.3の補足コメントに対して回答します。 出力フォーマットは変えずに対応します。 let tmp_min = divmod(tmp_hour[1], 60) の次の行に let tmp_sec = String(tmp_min[1]).split(".") を追加し、続く2行を rem_time = dayjs(new Date(null, null, tmp_day[0], tmp_hour[0], tmp_min[0], tmp_sec[0])) out = rem_time.format(output_format) + tmp_sec[1].substring(0, 1) のように書き換えます。 スクリプトの最終行 }, 1000) を }, 100) にすることで表示を100msごとに更新します。 substring(0, 1)の1を大きく、スクリプト最終行の数値を小さくすれば表示・更新できるミリ秒の桁数を増やすことができます。 しかし、すべての桁数をリアルタイムで更新することは負荷をかけすぎるため好ましくありません。 人間の認識可能な時間変化も考慮すれば、表示は1桁程度にとどめておくのがよいでしょう。