PHPでの質問です。

日付の日数計算などを行いたいのですが
そういった関数もしくはサンプルはありますでしょうか?
12/24 - 12/27 = 3
12:34 - 23:45 = 11:11
上記のような形で求めたり
加減できるものがあればおしえていただければと思います。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/01/24 19:32:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

id:quocard

ありがとうございます。

参考にさせていただきます。

2007/01/24 19:31:57
id:Mook No.2

回答回数1314ベストアンサー獲得回数393

ポイント60pt

PHP での時間関数は UNIX と同様ある時点からの通算秒を処理する体系なのでなれないと扱いがわかりずらいかもしれません。

関数を使用して、ご希望の仕様を実行した例です。

<?
define( "ONE_DAY_SEC", 24 * 3600 );

// 日付けの差分をとる関数
function dateDiff( $date1, $date2 ) {
    return ( strtotime( "12/27" ) - strtotime( "12/24" ) ) / ONE_DAY_SEC;
}
// 時間の差分をとる関数
function timeDiff( $time1, $time2 ) {
    // strtotime("0:0:0") を足して localtime を補正
    return date( "H:i:s", strtotime( $time1 ) - strtotime( $time2 )  + strtotime("0:0:0"));
}

// 実行サンプル
    $date1 = "12/27";
    $date2 = "12/24";
    print "$date1 - $date1 = ".dateDiff( $date1, $date2 )."<br>\n";

    $time1 = "23:45";
    $time2 = "12:34";
    print "$time1 - $time2 = ".timeDiff( $time1, $time2 );
?>

参考になるでしょうか。

id:quocard

ありがとうございます。

とてもわかりやすいです。

参考にさせていただきます。

2007/01/24 19:31:44
  • id:Mook
    dateDiff 関数の中は
    return ( strtotime( $date1 ) - strtotime( $date2 ) ) / ONE_DAY_SEC;
    の誤りでした。

    失礼しました。

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

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

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

回答リクエストを送信したユーザーはいません