[blog]自動計算歲月的語法-2011.07.08更新。火狐也能正確顯示的語法

本文引用自babytree – 寶寶年齡語法 ( IE 和 FIREFOX 都能正確顯示版 )

語法.jpg
從世界之窗換到火狐後,日期就無法顯示年了,今天上網找,果然有正確版本。^^
以下是我修改過的語法,因為原語法中有比較多的空格,而我考慮側欄的寬度和文字長度,故將空格刪去不用。



<!–語法開始–>
<script language=”JavaScript”>

var today = new Date();
var year = today.getFullYear();
var month = today.getMonth();
var day = today.getDate();
var t_yy = 0;
var t_mm = 0;
var t_dd = 0;

var b_yy = 請填西元年份;
var b_mm = 請填月;
var b_dd = 請填日;

t_yy = year – b_yy – 1;

if ( month + 1 > b_mm)
{ t_mm = month – b_mm ;
t_yy++;
}
else
t_mm = 12 – b_mm + month;

if (day > b_dd)
{ t_dd = day – b_dd;
t_mm++;
}
else
t_dd = daysInMonth(month, year) – b_dd + day;

if (t_dd > daysInMonth(month, year)-1)
{ t_dd = 0;
t_mm++;
}

if (t_mm > 11)
{ t_mm = 0;
t_yy++;
}

document.write(“某某已經“);

if (t_yy > 0)
document.write(” ” + t_yy + ““);

if (t_mm > 0)
document.write(t_mm + “個月“);

if (t_dd > 0)
document.write(” 又 ” + t_dd + ““) ;

//****** function set ******

function arrayOfDayInMonths(isLeapYear)
{
this[0] = 31;
this[1] = 31;
this[2] = 28;
if (isLeapYear)
this[2] = 29;
this[3] = 31;
this[4] = 30;
this[5] = 31;
this[6] = 30;
this[7] = 31;
this[8] = 31;
this[9] = 30;
this[10] = 31;
this[11] = 30;
}

function daysInMonth(month, year)
{ var isLeapYear = ((( year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
var monthdays = new arrayOfDayInMonths(isLeapYear);
return monthdays[month];
}
  </script><!–語法結束–>



這麼一來,不管IE或是火狐firefox,都能正確顯示年月日囉!^^

說明:
1.要全部複製後貼上,不可以自己斷行,不然會無法顯現喔!
2.紅字的地方:請用西元曆填上日期,比如孩子的生日或者結婚紀念日…等等,可以自己變化。
3.藍字的地方:這裡可以顯示你想要的語句,如Eric已經個月天了
         或者,我們已經牽手個月天了。多多發揮你的創意喔!
4.如果要計算多個,請以 <br> →換行,或者 <p> →空一行,隔開即可。

2008.04.01
本文引用自 lulu自動計算和顯現年月日的年齡語法
這個語法最早是在lulu家看到的,所以我跟lulu申請引用。
不過我用了之後發現字的排版有時候會顯得有點不規則
所以我略做了修改,如果想要原始語法的人請到lulu家取用,但記得謝謝她喲~

以下是我修改過的語法:

 

 



<script language=”JavaScript”>
var today = new Date();
var year = today.getYear();
var month = today.getMonth();
var day = today.getDate();
var t_yy = 0;
var t_mm = 0;
var t_dd = 0;
var b_yy = ;
var b_mm = ;
var b_dd = ;

 

t_yy = year – b_yy – 1;

if ( month + 1 > b_mm)
{ t_mm = month – b_mm ;
t_yy++;
}
else
t_mm = 12 – b_mm + month;

if (day > b_dd)
{ t_dd = day – b_dd;
t_mm++;
}
else
t_dd = daysInMonth(month, year) – b_dd + day;

if (t_dd > daysInMonth(month, year)-1)
{ t_dd = 0;
t_mm++;
}

if (t_mm > 11)
{ t_mm = 0;
t_yy++;
}

document.write(“某某某已經“);

if (t_yy > 0)
document.write(” ” + t_yy + ““);

if (t_mm > 0)
document.write(” ” +t_mm + “個月“);

if (t_dd > 0)
document.write(“&#21448;” + t_dd + “天了“) ;

//****** function set ******

function arrayOfDayInMonths(isLeapYear)
{ this[0] = 31;
this[1] = 28;
if (isLeapYear)
this[1] = 29;
this[2] = 31;
this[3] = 30;
this[4] = 31;
this[5] = 30;
this[6] = 31;
this[7] = 31;
this[8] = 30;
this[9] = 31;
this[10] = 30;
this[11] = 31;
}

function daysInMonth(month, year)
{ var isLeapYear = ((( year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
var monthdays = new arrayOfDayInMonths(isLeapYear);
return monthdays[month];
}

</script>


說明:
1.要全部複製後貼上,不可以自己斷行,不然會無法顯現喔!
2.紅字的地方:請用西元曆填上日期,比如孩子的生日或者結婚紀念日…等等,可以自己變化。
3.藍字的地方:這裡可以顯示你想要的語句,如Eric已經個月天了
         或者,我們已經牽手個月天了。多多發揮你的創意喔!
4.如果要計算多個,請以 <br> →換行,或者 <p> →空一行,隔開即可。

Posted by 小魚

Website: https://amwayfish.com/

This article has 45 Comments