PHPで日付の計算をするのにシンプルな方法はありますか?

やりたいことは、例えば「2004年5月25日から2005年4月10日までは何日あるか?」などです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/27 22:39:08
  • 終了:--

回答(5件)

id:Keiichiro No.1

Keiichiro回答回数84ベストアンサー獲得回数02005/07/27 22:49:40

ポイント20pt

http://ns1.php.gr.jp/pipermail/php-users/2003-July/017462.html

[PHP-users 16932]Re: 日付・時間の四則演算について(初歩的)

上記の通り結構簡単。


$sql_date1 = ”2004-05-25”;

$sql_date2 = ”2005-04-10”;

$result = strtotime( $sql_date2); - strtotime( $sql_date1);

$result = intval( $result / ( 24 * 60 * 60))+1;


最後の+1は、2004/5/25を示してます。

id:katase_n

なるほど。ありがとうございます。

やはり( 24 * 60 * 60))は必要ですか…。

2005/07/27 23:21:55
id:thrillseeker No.2

thrillseeker回答回数328ベストアンサー獲得回数372005/07/27 22:53:16

ポイント15pt

http://ww7.tiki.ne.jp/~inabah/php/003_004.htm

PHP入門 - 日付情報の作成(mktime)

mktime を使うのが最もシンプルかと。

以下の例では2つの日付けの差が $s に秒数として入り、

$d で日数に直しています。


$s = mktime(0,0,0,4,10,2005) - mktime(0,0,0,5,25,2004);

$d = $s/60/60/24;

id:ito-yu No.3

ito-yu回答回数323ベストアンサー獲得回数142005/07/27 22:55:09

ポイント15pt

http://php.net/strtotime

PHP: strtotime - Manual

UNIX TIME(秒)に直して差を取って24時間で割る。


<?php

$bgn = ’2004-05-25’;

$end = ’2005-04-10’;


echo cnt_term($bgn, $end);


function cnt_term($bgn, $end){

$t_bgn = strtotime($bgn);

$t_end = strtotime($end);

return floor(($t_end - $t_bgn) / (60 * 60 * 24));

}

?>

id:punky99 No.4

punky99回答回数30ベストアンサー獲得回数12005/07/27 22:59:51

ポイント15pt

たとえば、こんなのは意図したものですか?

echo (mktime(0,0,0,4,10,2005) - mktime(0,0,0,5,25,2004))/(3600*24);

id:jouno No.5

jouno回答回数280ベストアンサー獲得回数02005/07/27 22:59:56

ポイント15pt

http://www.res-system.com/weblog/item/405

PHP:���դη׻��ʺ����Ȥ������Ȥ��������������Ȥ�����������

phpの場合、基本的には計算はunix timeの秒数に還元して行うしかないようです。このURLのやり方が標準的なのではないでしょうか。

id:katase_n

そうでしたか・・。

$result = strtotime( $sql_date2); - strtotime( $sql_date1);

が分かりやすかったのでこれでやってみますね。

ありがとうございました。

2005/07/27 23:25:52

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません