[blog]自動計算歲月的語法-2011.07.08更新。火狐也能正確顯示的語法
本文引用自babytree – 寶寶年齡語法 ( IE 和 FIREFOX 都能正確顯示版 )
從世界之窗換到火狐後,日期就無法顯示年了,今天上網找,果然有正確版本。^^
以下是我修改過的語法,因為原語法中有比較多的空格,而我考慮側欄的寬度和文字長度,故將空格刪去不用。
<!–語法開始–>
<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(“又” + 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> →空一行,隔開即可。
不客氣啦~我也是看別人的分享~^^
謝謝您啦!真的很好用!!!
那有可能
因為各家瀏覽器對java的支持度不一樣。
謝謝你~^^
我是完整複製上面的語法,然後在正確的地方填入年月日之後,顯示出來結果會變成不會顯示年,或是顯示出來結果會錯誤,所以後來才在看全部的語法,因為底下年份的計算是 (t_yy = year – b_yy – 1;),所以上面定義年份的地方就會有影響,最後我是改為(var year = today.getFullYear();)才變正常的^^"
但你提到沒有改的時候就是正確的,那可能是不是瀏覽器不同或是版本不同造成的?我是用firefox 3.6.9,提供給碰到這個問題的朋友參考吧!^^
謝謝你的回應^^
我不懂程式
所以不知道是不是這樣
如果有人和你一樣
我想就解決了~^^
不過我去看了我的側欄,我輸入是2006、2002之類
也有199x的,都沒有問題
你指出的這一行並不是填入年份的地方喔?
var year = today.getYear();
測試之後,發現輸入西元年的時候,如果輸入19XX或200X,則會無法顯示幾歲,因為會被轉換,變成必須輸入 XX 或 10X,比如2003年則必須輸入103年,最後顯示才會正確,所以建議把
var year = today.getYear(); ←這一行 改為
var year = today.getFullYear();
這樣就可以輸入完整的西元年囉!^^
這是我試驗的結果,不知道別人是不是也碰到這個問題,如有不對,請多多包涵!
不好意思
這不是我寫的程式
我不會改
我帶走囉 感謝你 不過我想改成週數 不曉得要怎麼改 因為我懷孕中 2個月才改成9週
可以請你教教我嗎
抱歉喔,雅虎沒有在用所以我不熟
可以參考一下別人的自訂欄位教學
這邊有,請拉到下面參考。
http://www.bloggerads.net/teachvedio/teach2_yahoo/yahoo_teach2.html
我找了好久
終於找到了
但我對這有點白痴
可否教我在Yahoo部落格
在自訂的欄位中
要怎麼做才能顯示呢?
我打包走了~謝謝
http://blog.yam.com/dolphinboy
不會~
喔喔喔感激你 ~ 對不起問了麻煩的問題~@@
這個我不會
因為這是java程式的語法
要改也要從程式裡改吧
不好意思~因為我想要數字的顏色可以換色~不隻道可不可以直接在程式碼中直接作設定@@? 所以想問問看~~
字應該是隨著你blog的版面css改變的喔
請問一下 如果字要改顏色應該怎麼做呢?! (自己試好久都失敗@@~)
不客氣~^^
帶走囉
對媽咪來講 太實用了 感恩喔
不客氣喔
謝謝你的分享,我找這個語法好久了:D
不客氣呀~^^
帶走囉 感謝~~
不客氣喔
很高興幫上忙^^
在別人的blog上看到有此語法,得知有此好地方,就連過來帶走,很實用耶
感恩
不客氣~
妹妹好可愛唷~^^
謝謝分享唷~
語法打包帶走惹
不客氣~我刪一個喔^^
謝謝你哦,我也來使用看看~
嗯~對啊
不然你改用<p>看看如何?
可能是欄位有限制字數也不一定~
不好意思!可以再請教你嗎?
我用一個OK~但用2個就會顯示不出來!!
是在語法最後</script>+ <br>降子對嗎??
應該可以吧~^^
你用用看啊~
你好~請問天空部落可以用嗎?先謝謝你的分享
不客氣~請用:)
Dear小魚:
妳的語法打包囉
很實用,謝謝捏!
不客氣~^^
有空來坐喔~:)
想放計算日期的語法很久了
不過找到的都是圖片
這個語法簡便又好用~
many thanks 🙂
推測是幾天前面的亂碼所致
不客氣呀~常在lulu家看見妳~^^
但不知道怎麼稱呼呢?
請問語法裡面沒有<又>字~為什麼貼出來有呢??難道是我眼花了?????
我用了,也ok了!! 謝謝分享哦~
我不知道耶,因為最近無名又限制了java的語法
你要先找出公告來看看,如果不懂請你老公解釋一下。^^
就是很方便,所以我看過有人一次掛了快10個~哈哈
請問無名也適用嗎???
這很方便ㄋㄟ…不用老是要算算手指才知道宸宸多大了
免客氣啦~:)
帶走了