他の回答へのコメントから、リダイレクト先(期間)の複数設定があってもよさそうだったのでそういうサンプル。
ただし一度に設定できれば楽だけど、必要以上にリダイレクト先が分る状態はよろしくないのかも。
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var now = new Date(); jQuery.each({ // リダイレクト先 : (開始日時、終了日時) 'abc.html':new Array('2010/2/9','2010/2/10 23:59:59'), 'def.html':new Array('2010/2/11 15:00:00','2010/2/11 22:00:00'), 'ghi.html':new Array('2010/2/13','2010/2/14 09:59:59'), },function(rd,dt){ if(new Date(dt[0]) <= now && now <= new Date(dt[1])) document.location.href = rd; }); document.location.href = 'xyz.html';//設定されてない時のリダイレクト。不要なら削除 </script>
ソース隠しについてはせいぜいが外部JSファイル化するぐらい?
第三者が見てわかりづらくするって事は、自分が見ても/更新する時わかりづらくなりそうだし。
単純に書くと下記のような感じ。
<html> <body> <script type="text/javascript"> var now = new Date(); var m = (now.getMonth() > 8 ? "" : "0") + (now.getMonth() + 1); var d = (now.getDate() > 9 ? "" : "0") + now.getDate(); location.href = m + d + ".html"; </script> </body> </html>
URL必須との事なので、杜甫々さんのページ
http://www.tohoho-web.com/js/date.htm
※ご不明な点はコメント欄を開けて書いていただけると、
可能な範囲で応答します。
なるほど、シンプルでいいですね。でもこれだと全ての日にちのhtmlを用意しなきゃいけないなと。時間設定も含めるとかなりのhtmlが必要になるのかな。
まずはお願いなのですが、
ご質問に論理的矛盾がありますので
不適当な回答が集まっても混乱をきたしますから、私への返信欄か、
あるいは、コメント欄を開く設定に変更してコメント欄)に、
書き加えておくことを勧めます。
失礼しました。
1.おっしゃる通りです。2月10日23時59分59秒という意味です。
2.年号は設定出来た方がいいですが、1年以上の利用を考えてはいません。
3.時間の指定を誰でも簡単に行えるようにするにはこういったライブラリを利用した方がいいのかと思いまして。現在jQueryを利用しているものですから。例えば2010-02-10-23:59:59とか分かりやすい表記ができる方法があるとベターです。
こんな感じでいかがでしょう。index.htmlの頭の方に書いてください。
最初の4つの変数にキャンペーン期間を入れてください。
これらの変数のエラーチェックはしていません。
また、年またがりの処理(例:キャンペーン期間が2010年12月29日~2011年1月4日)はできません。
var from_dt = '02-14-00:00:00'; var from_url = 'now.html'; var to_dt = '02-21-22:00:00'; var to_url = 'after.html'; var t0 = new Date(); var ee = from_dt.match(/(\d{2})-(\d{2})-(\d{2}):(\d{2}):(\d{2})/); var t1 = new Date(t0.getFullYear() + '/' + ee[1] + '/' + ee[2] + ' ' + ee[3] + ':' + ee[4] + ':' + ee[5]); var ee = to_dt.match(/(\d{2})-(\d{2})-(\d{2}):(\d{2}):(\d{2})/); var t2 = new Date(t0.getFullYear() + '/' + ee[1] + '/' + ee[2] + ' ' + ee[3] + ':' + ee[4] + ':' + ee[5]); if (t0 >= t1 && t0 < t2) location.href = from_url; else if (t0 >= t2) location.href = to_url;
jQueryは使っていません。このような計算処理ではjQueryの使い途がないためです。
おー! 確認できました! ありがとうございます!
他の回答へのコメントから、リダイレクト先(期間)の複数設定があってもよさそうだったのでそういうサンプル。
ただし一度に設定できれば楽だけど、必要以上にリダイレクト先が分る状態はよろしくないのかも。
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var now = new Date(); jQuery.each({ // リダイレクト先 : (開始日時、終了日時) 'abc.html':new Array('2010/2/9','2010/2/10 23:59:59'), 'def.html':new Array('2010/2/11 15:00:00','2010/2/11 22:00:00'), 'ghi.html':new Array('2010/2/13','2010/2/14 09:59:59'), },function(rd,dt){ if(new Date(dt[0]) <= now && now <= new Date(dt[1])) document.location.href = rd; }); document.location.href = 'xyz.html';//設定されてない時のリダイレクト。不要なら削除 </script>
ソース隠しについてはせいぜいが外部JSファイル化するぐらい?
第三者が見てわかりづらくするって事は、自分が見ても/更新する時わかりづらくなりそうだし。
おお、これは汎用性高そうですね。ありがとうございます :-)
おお、これは汎用性高そうですね。ありがとうございます :-)