Хранение DateTime в MySql с использованием PHP и выполнение вычитания, чтобы получить разницу в днях и часах - PullRequest
0 голосов
/ 11 июня 2011

Я немного погуглил, но не могу понять, как использовать функцию DateTime и сохранять в MySql с помощью PHP.Также мне нужно вычесть сохраненную дату в базе данных из текущей даты, а также сохраненное время из текущего времени.Я не хочу использовать отдельную функцию date () и time ().Я хочу сохранить дату и время в одном столбце в MySql с использованием PHP и получить индивидуальный результат вычитания даты и времени.Как мне этого добиться?

1 Ответ

0 голосов
/ 11 июня 2011

Попробуйте:

<?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';
    }

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...