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

[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> →空一行,隔開即可。

Leave a Reply

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

  1. 我是完整複製上面的語法,然後在正確的地方填入年月日之後,顯示出來結果會變成不會顯示年,或是顯示出來結果會錯誤,所以後來才在看全部的語法,因為底下年份的計算是 (t_yy = year – b_yy – 1;),所以上面定義年份的地方就會有影響,最後我是改為(var year = today.getFullYear();)才變正常的^^&quot;

    但你提到沒有改的時候就是正確的,那可能是不是瀏覽器不同或是版本不同造成的?我是用firefox 3.6.9,提供給碰到這個問題的朋友參考吧!^^

  2. 謝謝你的回應^^
    我不懂程式
    所以不知道是不是這樣
    如果有人和你一樣
    我想就解決了~^^

    不過我去看了我的側欄,我輸入是2006、2002之類
    也有199x的,都沒有問題
    你指出的這一行並不是填入年份的地方喔?

  3. var year = today.getYear();
    測試之後,發現輸入西元年的時候,如果輸入19XX或200X,則會無法顯示幾歲,因為會被轉換,變成必須輸入 XX 或 10X,比如2003年則必須輸入103年,最後顯示才會正確,所以建議把
    var year = today.getYear(); ←這一行 改為
    var year = today.getFullYear();
    這樣就可以輸入完整的西元年囉!^^

    這是我試驗的結果,不知道別人是不是也碰到這個問題,如有不對,請多多包涵!

  4. 我帶走囉 感謝你 不過我想改成週數 不曉得要怎麼改 因為我懷孕中 2個月才改成9週
    可以請你教教我嗎

  5. 我找了好久
    終於找到了
    但我對這有點白痴
    可否教我在Yahoo部落格
    在自訂的欄位中
    要怎麼做才能顯示呢?

  6. 不好意思~因為我想要數字的顏色可以換色~不隻道可不可以直接在程式碼中直接作設定@@? 所以想問問看~~

  7. 在別人的blog上看到有此語法,得知有此好地方,就連過來帶走,很實用耶
    感恩

  8. 嗯~對啊
    不然你改用&lt;p&gt;看看如何?
    可能是欄位有限制字數也不一定~

  9. 不好意思!可以再請教你嗎?
    我用一個OK~但用2個就會顯示不出來!!
    是在語法最後&lt;/script&gt;+ &lt;br&gt;降子對嗎??

  10. 想放計算日期的語法很久了
    不過找到的都是圖片
    這個語法簡便又好用~

    many thanks 🙂

  11. 我不知道耶,因為最近無名又限制了java的語法
    你要先找出公告來看看,如果不懂請你老公解釋一下。^^

    就是很方便,所以我看過有人一次掛了快10個~哈哈

  12. 請問無名也適用嗎???
    這很方便ㄋㄟ…不用老是要算算手指才知道宸宸多大了

聽說留言一次瘦十斤喔!^+++^

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料