sql >> データベース >  >> RDS >> Mysql

PHPの2つの日付の差を計算します

    date_diff()関数を使用できます

    http://php.net/manual/en/function.date-diff .php

    のようなもの...

    <?php 
    $now = time();
    $then = $posttime;
    $diff = date_diff($now,$then);
    echo $diff->format('%R%d days'); #change format for different timescales
    ?>
    

    編集-

    この機能を使用して、Twitterアプリの1つでこの問題を実際に解決しています...

    function time_since ( $start )
    {
        $end = time();
        $diff = $end - $start;
        $days = floor ( $diff/86400 ); //calculate the days
        $diff = $diff - ($days*86400); // subtract the days
        $hours = floor ( $diff/3600 ); // calculate the hours
        $diff = $diff - ($hours*3600); // subtract the hours
        $mins = floor ( $diff/60 ); // calculate the minutes
        $diff = $diff - ($mins*60); // subtract the mins
        $secs = $diff; // what's left is the seconds;
        if ($secs!=0) 
        {
            $secs .= " seconds";
            if ($secs=="1 seconds") $secs = "1 second"; 
        }
        else $secs = '';
        if ($mins!=0) 
        {
            $mins .= " mins ";
            if ($mins=="1 mins ") $mins = "1 min "; 
            $secs = '';
        }
        else $mins = '';
        if ($hours!=0) 
        {
            $hours .= " hours ";
            if ($hours=="1 hours ") $hours = "1 hour ";             
            $secs = '';
        }
        else $hours = '';
        if ($days!=0) 
        {
            $days .= " days "; 
            if ($days=="1 days ") $days = "1 day ";                 
            $mins = '';
            $secs = '';
            if ($days == "-1 days ") {
                $days = $hours = $mins = '';
                $secs = "less than 10 seconds";
            }
        }
        else $days = '';
        return "$days $hours $mins $secs ago";
    }
    

    チェックする時刻(投稿時刻)のUNIXタイムスタンプで渡すと、さまざまな文字列が返されます。



    1. 不正な整数(2147483647)がMySQLに挿入されていますか?

    2. 結果を除算するためのSQLの10進値

    3. varcharフィールドを番号として注文するにはどうすればよいですか?

    4. MySQLはtimediff出力を日、時、分、秒の形式に変換します