« 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