年齢の計算
-
0 名前: 柳穂 : 2006/04/25 08:47
- ホームページで、年齢を表示させたいのですが、
誕生日が来たら自動で加齢されていくような方法はありませんでしょうか?
左のセルが誕生日、右のセルに年齢という風にさせたいです。
Excelで言えば、DATEDIF(セル位置,TODAY(),"Y") のような感じなのですが・・・。
宜しくお願い致します。
-
1 名前: m035 : 2006/04/25 08:47 [URL]
- <script type="text/javascript">
<!--
var born=new Date(1950,1,1);//(年,月-1,日)の形で誕生日を設定
function old(){
var now=new Date();
var ol=Math.floor((now.getTime()-born.getTime())/(1000*60*60*24*365));
document.write(ol+"歳");
}
function birth(){
document.write((1900+born.getYear())+"/"+(born.getMonth()+1)+"/"+born.getDate());
}
//-->
</script>
以上を<head>〜</head>内に入れておきます。
外部ファイルにしてもいいでしょう。
>左のセルが誕生日、右のセルに年齢という風にさせたいです。
tableタグを普通に使ってください。
左のセルのtd内に
<script type="text/javascript">
<!--
old();
//-->
</script>
右のセルのtd内に
<script type="text/javascript">
<!--
birth();
//-->
</script>
を入れてください。
適当に作ったのでちょっと不安ですが。
-
2 名前: Pid : 2006/04/25 08:47
- 恐縮ですが,getYear は 2000 年問題との絡みで ECMA 262-3 で廃止されました。getFullYear をお使い下さい。
http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/ecma262r3/B_Compatibility.html#section-B.2.4
閏年計算やらが面倒ですから,計算はマシンに任せて良いかも。
var d = new Date;
d.setTime ((new Date) - Date.UTC (1950, 3 - 1, 23)); // 誕生日 1950-3-23
alert ( d.getFullYear () - 1970 ); // 年齢
-
3 名前: 柳穂 : 2006/04/25 08:47
- m035さん、Pidさん、回答有難うございます。
お礼が遅くなって済みませんでした。
試してみたのですが、
「var born=new Date(1950,1,1);//(年,月-1,日)の形で誕生日を設定」
の所を1950,1,1 とすると表示上では2月になってしまいます。
pidさんの補足式は、どの部分を変更すればよいのでしょうか?
何となくで試したのですが、年齢が別の所に出てしまいました・・・。
リンク先も拝見しましたが、難しくてよくわかりません。
もし、ご覧になっていましたら、教えて頂けないでしょうか。
宜しくお願い致します。
-
4 名前: 匿名希望 : 2006/04/25 08:47
- ■head内■
<script type="text/javascript">
<!--
var born=new Date(1950,3 - 1, 23);//誕生日を設定(年,月-1,日)
function birth(){
document.write(born.getFullYear()+"年"+(born.getMonth()+1)+"月"+born.getDate()+"日");
}
function old(){
var d = new Date;
d.setTime ( new Date - born );
var ol=( d.getFullYear() - 1970 );
document.write(ol+"歳");
}
//-->
</script>
■誕生日を表示させたい部分に以下を挿入■
<script type="text/javascript">
<!--
birth();
//-->
</script>
■年齢を表示させたい部分に以下を挿入■
<script type="text/javascript">
<!--
old();
//-->
</script>