2013年10月11日 星期五

計算網站開張天數



計算網站開張天數
以下這段 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

沒有留言:

張貼留言