ホームページ >バックエンド開発 >PHPチュートリアル >PHP は日付文字列を現在の日数などに変換します。
PHP は日付文字列を現在の日数に変換します
入力は日付文字列です (例: 2011-3-23
)出力は現在の日数です。例: 1
?
コードは次のとおりです:
?
public static function convertDateToLong($dateStr){ $checkPattern = "/^\d{4}(((-\d{1,2}){2})|((\.\d{1,2}){2})|((\/\d{1,2}){2}))$/"; $date = substr(trim($dateStr),0,strpos(trim($dateStr)," ")>0 ? strpos(trim($dateStr)," ") : strlen(trim($dateStr))); if(preg_match($checkPattern,$date)){ preg_match("/([-\/.])/",$date,$outer); $dilimeter = $outer[1]; list($year,$month,$day) = explode($dilimeter,$date); if(checkdate($month,$day,$year)){ $spsec = time()-mktime(0,0,0,$month,$day,$year); if($spsec < 0) throw new Exception("date can not be after today!!!"); $spday = floor($spsec/24/60/60); return $spday; } else{ throw new Exception("the date input is not a valid date"); } } else{ throw new Exception("the dateStr is wrong formatted!!!"); } }
$day=floor((time()-strtotime($date))/86400);
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)
さらに、strtotime は幅広い日付形式をサポートしているので、とても勉強になりました。
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)
さらに、strtotime は幅広い日付形式をサポートしているので、とても勉強になりました。
http://www.php.net/manual/en/datetime.formats.date.php