計算網站開張天數
以下這段 Javascript 程式,用來計算特定時間與今天的差距,先抓出使用者電腦的時間,去和指定的時間做計算,最後在格式化成中文的年月日表現方式。原程式是英文的,改成中文版的人並不用心,沒有把程式最佳化一下,只把文字中文化,因為英文有複數要加 s 的問題,中文沒有,所以我就把程式改短一點,拿掉沒有用的判斷。放到 Blog 裡面,設定的指定日期只要是你寫第一篇 Blog 的日子,就可以拿來顯示 Blog 已經開站幾天了。
以下這段 Javascript 程式,用來計算特定時間與今天的差距,先抓出使用者電腦的時間,去和指定的時間做計算,最後在格式化成中文的年月日表現方式。原程式是英文的,改成中文版的人並不用心,沒有把程式最佳化一下,只把文字中文化,因為英文有複數要加 s 的問題,中文沒有,所以我就把程式改短一點,拿掉沒有用的判斷。放到 Blog 裡面,設定的指定日期只要是你寫第一篇 Blog 的日子,就可以拿來顯示 Blog 已經開站幾天了。
這一段是宣告定義的部分,可以放在最前面:
<script language="JavaScript">
//<![CDATA[
function HowLongSince(startyear, startmonth, startdate) {
var DaysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var today = new Date()
var thisyear = today.getFullYear();
var thismonth = today.getMonth();
var thisdate = today.getDate();
mstart = new Date(startyear, startmonth, 1);
mend = new Date(thisyear, thismonth, 1);
ydiff = thisyear - mstart.getFullYear();
mdiff = thismonth - mstart.getMonth();
days1 = (mstart - new Date(startyear, startmonth - 1,startdate))/(24*60*60*1000) - 1;
days2 = (new Date(thisyear,thismonth,thisdate) - mend)/(24*60*60*1000) + 1;
dayst = days1 + days2;
if (dayst >= DaysInMonth[startmonth - 1]) {
mdiff += 1;
dayst -= DaysInMonth[startmonth - 1];
}
if (ydiff == 0 && mdiff == 0 && dayst == 0)
message = "今天";
else {
if (mdiff > 11) { mdiff = 0; ydiff++; }
if (mdiff < 0) { mdiff = mdiff + 12; ydiff--; }
message = (ydiff != 0 ? ydiff + " 年" : "");
message += (mdiff != 0 ? " " + mdiff + " 個月" : "");
if (ydiff != 0 && mdiff != 0) message += "又";
message += (dayst!=0 ? " " + dayst+" 天" : "");
}
return message;
}
//]]>
</script>
當要呼叫使用的時候,以下是使用的範例:(紅色的部分自己改日期)
<p>Established:
<script language="JavaScript">document.write(HowLongSince(2006,11,3)); </script>
</p>
其他應用,可以用來倒數特定日子的到來、或是提醒紀念日,彈性就根據個人需要來調整囉!
本文引自 http://abintech.twidv.com/2006/12/blog-post.html
沒有留言:
張貼留言