ホームページ >バックエンド開発 >PHPチュートリアル >PHP は日付文字列を現在の日数などに変換します。

PHP は日付文字列を現在の日数などに変換します。

WBOY
WBOYオリジナル
2016-06-13 13:02:13982ブラウズ

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!!!");
        }
    }

1階 バルド 2011-03-26
有効性チェックはさておき、このコードには回り道が多すぎます。日数の計算に必要なコードは 1 つだけです:
$day=floor((time()-strtotime($date))/86400);

2階 リウジキアングルク 2011-03-30
bardo は
を書きました 妥当性チェックはさておき、このコードは回り道が多すぎます。日数を計算するには、コードが 1 つだけ必要です:
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)

3階 リウジキアングルク 2011-03-30
liuzhiqiangruc が書きました
bardo が書きました
有効性チェックを除けば、このコードには回り道が多すぎます。日数を計算するには、コードが 1 つだけ必要です:
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)
さらに、strtotime は幅広い日付形式をサポートしているので、とても勉強になりました。

4階 リウジキアングルク 2011-03-30
liuzhiqiangruc が書きました
liuzhiqiangruc が書きました
bardo が書きました
有効性チェックを除いて、このコードは回りくどいです 曲線もすぎます大きい。日数を計算するには、コードが 1 つだけ必要です:
$day=floor((time()-strtotime($date))/86400);
確かに、strtotime は可能です、ありがとうアドバイスのために。 :-)
さらに、strtotime は幅広い日付形式をサポートしているので、とても勉強になりました。
http://www.php.net/manual/en/datetime.formats.date.php
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。