前提
JavascriptとjQeryを用いて、
指定した日時に自動的に別ページへ遷移する仕様のキャンペーンページを作成しています。
自動リダイレクトと、自動リロードのスクリプトを組み合わせて、リダイレクト先とタイミングを指定した上で、その時刻を跨ぐタイミングにページを見ていた人でも、自動的に指定日時にリロードがかかり、別ページへ遷移するようにしたく実装を進めていました。
以前は問題なく動いていたのにも関わらず、指定日時を変えることで挙動がおかしくなるエラーが発生しました。
発生している問題・エラーメッセージ
前回(3月ごろ)は特に問題なく動いていたのですが、
今回、指定日時を「2022年5月21日20時」にすると、なぜか
リロードが延々と繰り返されるようになってしまいました。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- 2022年5月21日20時に別の同ディレクトリ内ページへ自動的に遷移する
- その時刻を跨ぐタイミングでページを見ていた人でも強制的に別ページへ遷移するようにする
該当のソースコード
/*時限遷移管理*/ var now = new Date(); jQuery.each({ // リダイレクト先 : (開始日時、終了日時) './archive1.html':new Array('2022/5/21 20:00:00','2999/12/31 23:59:59'), },function(rd,dt){ if(new Date(dt[0]) <= now && now <= new Date(dt[1])) document.location.href = rd; }); /*自動リロードするタイミング*/ window.onload = function() { var nowTime = new Date(); var targetTime = new Date("2022/5/21 20:00:00"); var refreshTime = targetTime.getTime() - nowTime.getTime(); if(refreshTime>0) { setTimeout(function(){location.reload(true)},refreshTime); } };
試したこと
以前、2022年3月6日17時で指定した時は問題なく動いていましたが、
今回、2022年5月21日20時にすることでリロードが繰り返されるエラーが発生しました。
そこで、どの日付ならOKもしくはNGなのか、2022年5月21日前後で検証してみました。
2022年5月10日20時:○
2022年5月11日20時:○
2022年5月12日20時:○
2022年5月13日20時:○
2022年5月14日20時:○
2022年5月15日20時:×
2022年5月16日20時:×
2022年5月17日20時:×
2022年5月18日20時:×
2022年5月19日20時:×
2022年5月20日20時:×
2022年5月21日20時:×
というように、なぜか2022年5月14日を境にエラーが起こる現象を確認しました。
補足:なぜか2022年6月9日20時以降は○になるようです
補足情報
自動リダイレクトと自動リロードは下記の記事を参考にしました。
Javascript/jQuery にて指定の日時でページを更新する
https://www.t3a.jp/blog/web-develop/javascript-time-refresh/
指定日時でリダイレクト
https://q.hatena.ne.jp/1265810141
以上、どなたか原因と解決策がわかる方がいらっしゃいましたら、ご教示のほど、よろしくお願いいたします。
「実現したいこと」の2つの条件が叶うなら、全く別の方法でも構いません。
よろしくお願いします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/20 08:23
2022/04/20 08:40 編集
2022/04/20 09:47
2022/04/20 15:10
2022/04/21 00:53