« PHP:time()関数 | メイン | PHP:ereg()関数・eregi()関数 »

2005年12月20日

PHP:strtotime()関数

strtotime()関数は、英文形式の日付・時刻式をUNIXタイムスタンプに変換します。

※日時差を算出する際に便利な関数です。

今の日時を算出する場合

$nowDate = date("m-js-Y Ah:i", strtotime("now"));  //現在の日時
print $nowDate;

※上記の結果、たとえば「12-2043-2005 PM10:25」を出力します。

3週間後の日時を算出する場合

$date_3week = date("Y-m-d H:i:s", strtotime("+3 week"));
print $date_3week;

※上記の結果、たとえば「2006-01-10 22:30:06」を出力します。

1ヶ月+5日+10時間前の日時を算出する場合

$date_before = date("Y-m-d H:i:s", strtotime("-5 days -1 month -10hours"));
print $date_before;

※上記の結果、たとえば「2005-11-15 12:33:48」を出力します。

英文を日時に変換する場合

$date_e = date("Y-m-d H:i:s", strtotime("20 Dec 2005"));
print $date_e;

※上記の結果、「2005-12-20 00:00:00」を出力します。

現在が2つの日付の間に入っているかどうかをチェック
たとえば2005-11-20、2006-01-01などの二つの日付の間に今日が入っていればTRUEを返します。

function checkBetween($date_before, $date_after){
    $u_date_before = strtotime($date_before);  //日付前をUNIXタイム化
    $u_date_after = strtotime($date_after);  //日付後をUNIXタイム化
    $u_nowDate = strtotime(date("Y-m-d"));>  //今の日時をUNIXタイム化
    if($u_date_before <= $u_nowDate && $u_nowDate <= $u_date_after){
        return true;
    }
}

if(checkBetween("2005-11-20", "2006-01-01")){
    print "間に含まれています。";
}else{
    print "間に含まれていません。";
}

※今日が2005年12月20日だとした場合、上記の結果「間に含まれています。」を出力します。

2つの日付の日数差を算出
2005-11-20、2006-01-01などの二つの日付の日数差を算出します。

function dateBetween($date_before, $date_after){
    $u_date_before = strtotime($date_before);  //日付前をUNIXタイム化
    $u_date_after = strtotime($date_after);  //日付後をUNIXタイム化
    $dayDifference = ($u_date_after-$u_date_before)/86400;  //差を24(時間)×60(分)×60(秒)で割る
    return $dayDifference;
}

print dateBetween("2005-11-20", "2006-01-01");

※上記の結果、「42」を出力します。(日数差が42日)

投稿者 wing : 2005年12月20日 22:57

コメント