前回の閲覧からの経過日数に応じてメッセージを変える


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - - × -
Macintosh - - -
UNIX - - - - - - - -
Dreamcast - - - - - - - - - - × × -

ポイント oldDate = (new Date(aDay)).getTime(); newDate = (new Date()).getTime(); sec = Math.floor((newDate - oldDate) / 1000); day = Math.floor(sec / 60 / 60 / 24); if (day < 7) { // 一週間以上アクセスなし document.write("お久しぶりです、ようこそ。"); }else{ // 一週間以内のアクセス document.write("こまめにアクセスしていただき、ありがとうございます。"); }
説  明 前回の閲覧からの経過日数に応じてメッセージを変えるにはCookieにnew Date()で生成した日付情報を格納しておきます。ページがアクセスされた時に以前の日付情報をCookieから読み出し現在の時刻との差分を取ります。差分を取るにはgetTime()で前回と今回の日付をミリ秒に変換してから行います。得られたミリ秒を(1000 * 60 * 60 * 24)で割れば経過日数等を求めることができます。求めた経過日数に応じてメッセージを変えページ上にdocument.write()で表示します。
サンプル <html> <head> <title>前回の閲覧からの経過日数に応じてメッセージを変える</title> </head> <body> 前回アクセス: <script language="JavaScript"><!-- function checkCookieDate() { // 前回の閲覧時刻 theName = "aDay="; theCookie = document.cookie+";" start = theCookie.indexOf(theName); if (start != -1) { // 記録されていた場合 end = theCookie.indexOf(";",start); aDay= unescape(theCookie.substring(start+theName.length,end)); }else{ aDay= new Date(); } // 今回の時刻を保存する(90日間=theDay) theDay = 90; setDay = new Date(); expDay = new Date(); expDay.setTime(expDay.getTime()+(theDay*1000*60*60*24)); expDay = expDay.toGMTString(); document.cookie = "aDay" + "="+escape(setDay)+";expires="+expDay; // 前回の閲覧時刻が記録されていなければ初めてのアクセス if (start == -1) { document.write("初めてのアクセスですね。ようこそ。"); return; } // 前回と今回の日時の差分を取る oldDate = (new Date(aDay)).getTime(); newDate = (new Date()).getTime(); sec = Math.floor((newDate - oldDate) / 1000); day = Math.floor(sec / 60 / 60 / 24); if (day >= 7) { // 一週間以上アクセスなし document.write("お久しぶりです、ようこそ。"); }else{ // 一週間以内のアクセス document.write("こまめにアクセスしていただき、ありがとうございます。"); } } checkCookieDate(); // --></script> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA