人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで日付の計算をするのにシンプルな方法はありますか?
やりたいことは、例えば「2004年5月25日から2005年4月10日までは何日あるか?」などです。

●質問者: katase_n
●カテゴリ:コンピュータ
✍キーワード:2004年 2005年 4月10日 5月25日 PHP
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● Keiichiro
●20ポイント

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を示してます。

◎質問者からの返答

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

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


2 ● thrillseeker
●15ポイント

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;


3 ● ito-yu
●15ポイント

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));

}

?>


4 ● punky99
●15ポイント

http://php.s3.to/man/function.mktime.html

mktime

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

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


5 ● jouno
●15ポイント

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

PHP:????η??????????????????????????????????????????

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

◎質問者からの返答

そうでしたか・・。

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ