- ベストアンサー
ある日付から○年○月○日目の計算
ウェブログを始めました。 記事の隣に配置されているメニューカラムとでも申しましょうか。 そこに、自分の好きなカテゴリーを設置できると最近知りました。 そこで、「2014年3月28日から、今日で○年○月○日」と表示させるようにしたいです。 現在、「○日」という表示は出来るようになったのですが(サンプルをこぴぺで…) 未来、桁数がすさまじいことになっていくので、年月日にしたいのですが 知識がないので、どなたか、例文をご存じでしたら教えて下さい。
ウェブログを始めました。 記事の隣に配置されているメニューカラムとでも申しましょうか。 そこに、自分の好きなカテゴリーを設置できると最近知りました。 そこで、「2014年3月28日から、今日で○年○月○日」と表示させるようにしたいです。 現在、「○日」という表示は出来るようになったのですが(サンプルをこぴぺで…) 未来、桁数がすさまじいことになっていくので、年月日にしたいのですが 知識がないので、どなたか、例文をご存じでしたら教えて下さい。
お礼
丸投げなのにどうもありがとうございます! 早速試してみたところ、理想の結果になりました! しかしながら、ブログ自体毎日更新しないのに、endDayを毎日手作業で変えるのは自分にはとても出来ません。 endDayへは、固定値ではなく本日日付を取得させたいです。 自分なりに調べてみて、new Date()にしたら、1か月ずれました。 何か、ずれるのは仕様っぽいことが書いてあったので、開始日(本当は3月28日)を、2月28日にしました。 本日(12月22日)時点で、0年8か月25日と表示されて欲しいのですが、1日ずれて0年8か月24日と表示されています。 日も、月と同じように1日ずれるものなんでしょうか? (そういう記述は、見つけられませんでした) もしそうだとしたら、開始日を2月27日にすれば良いのでしょうか。 現在、こうなっています。 (開始日の固定日、終了日、document.writeを"○/○/○"から"(○年○か月○日)”と表示させるようにしたの3点しか変えていません。) <script type="text/javascript"> var startDay = new Date(2014,2,27); var endDay = new Date(); function ddiff(s,e){ if(s > e) return false; var y1=s.getFullYear(),m1=s.getMonth(),d1=s.getDate(); var y2=e.getFullYear(),m2=e.getMonth(),d2=e.getDate(); var y0=y2-y1,m0=m2-m1,d0=d2-d1; y0-=(m1>m2 || (m1==m2 && d1>d2))?1:0; m0=(12+m0-(d1>d2?1:0))%12; d0+=d1>d2?(new Date(y2,m2,0)).getDate():0; return "("+y0+"年"+m0+"か月"+d0+"日)"; } document.write(ddiff(startDay,endDay)); </script> 肝心のプログラミングの中身は全く理解出来ていない訳ですが、 とりあえず今は、やりたかった事が出来ています。 これを機にちょっとデキるようになりたいなーとか思ったけど、難しすぎでした。