使用PHP在MySql中存储DateTime并执行减法以获得天数和小时数的差异

时间:2011-06-11 17:54:23

标签: php mysql datetime

我google了一下,但我无法弄清楚如何使用DateTime函数并使用PHP存储在MySql中。此外,我需要从当前日期中减去数据库中存储的日期,并从当前时间中存储时间。我不希望使用单独的date()和time()函数。我希望使用PHP将日期和时间存储在MySql的一列中,并获得减去日期和时间的单独结果。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试:

<?php
    $insert_query   =   "INSERT INTO `table_name`(`date_time`) VALUES('".date('Y-n-j H:i:s', time())."')";

    function timeDifference($timestamp, $type = 'd'){
        $diff_seconds   =   $timestamp - time();
        $diff_secs      =   $diff_seconds;
        $diff_weeks     =   floor($diff_seconds/604800);
        $diff_seconds  -=   $diff_weeks   * 604800;
        $diff_days      =   floor($diff_seconds/86400);
        $diff_seconds  -=   $diff_days    * 86400;
        $diff_hours     =   floor($diff_seconds/3600);
        $diff_seconds  -=   $diff_hours   * 3600;
        $diff_minutes   =   floor($diff_seconds/60);
        $diff_seconds  -=   $diff_minutes * 60;
        if($type === 's'){
            return $diff_secs;
        } elseif($type === 'm'){
            return $diff_minutes;
        } elseif($type === 'h'){
            return $diff_hours;
        } elseif($type === 'd'){
            return $diff_days;
        } elseif($type === 'w'){
            return $diff_weeks;
        }
    }
    $select_query   =   'SELECT UNIX_TIMESTAMP(`date_time`) `date_time` FROM `table_name`';
    $select_result  =   mysql_query($select_query);
    if(is_resource($select_result) && mysql_num_rows($select_result) > 0){
        while($row = mysql_fetch_assoc($select_result)){
            echo    'Days difference is: '.timeDifference($row['date_time'], 'd').
                    ', and hours difference is: '.timeDifference($row['date_time'], 'h');
        }
    } else{
        echo 'No records found';
    }

?>