前回の閲覧からの経過日数を表示させる


動作ブラウザ 【 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(); tmp = Math.floor((newDate - oldDate) / 1000); sec = tmp % 60; min = Math.floor(tmp / 60) % 60; hour = Math.floor(tmp / 60 / 60) % 24; day = Math.floor(tmp / 60 / 60 / 24); document.write(day,"日",hour,"時間",min,"分",sec,"秒");
説  明 前回の閲覧からの経過日数を表示させるにはCookieにnew Date()で生成した日付情報を格納しておきます。ページがアクセスされた時に以前の日付情報をCookieから読み出し現在の時刻との差分を取ります。差分を取るにはgetTime()で前回と今回の日付をミリ秒に変換してから行います。得られたミリ秒を1000で割れば秒数、秒数を60で割れば分・・・というように経過日数等を求めることができます。
サンプル <html> <head> <title>前回の閲覧からの経過日数を表示させる</title> </head> <body> 前回の閲覧から <script language="JavaScript"><!-- // 前回の閲覧時刻 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(); } // 今回の時刻を保存する(30日間=theDay) theDay = 30; 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; // 前回と今回の日時の差分を取る oldDate = (new Date(aDay)).getTime(); newDate = (new Date()).getTime(); tmp = Math.floor((newDate - oldDate) / 1000); sec = tmp % 60; min = Math.floor(tmp / 60) % 60; hour = Math.floor(tmp / 60 / 60) % 24; day = Math.floor(tmp / 60 / 60 / 24); document.write(day,"日",hour,"時間",min,"分",sec,"秒"); // --></script> 経過しています。 </body> </html>
補足説明 なし

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

写真素材 PIXTA