计算两个日期时间之间的差异



我正在使用PHP和MySQL,并希望计算两个日期时间之间的日期时间差。我有一个消息表,在这个表中createdate是一个字段。我想以1 day 2 hours ago格式找出与当前日期的日期和时间差异。做这件事最好的办法是什么?

使用PHP内置的日期函数:

<?php
    $start_time = "Y-m-d H:i:s"; // fill this in with actual time in this format
    $end_time = "Y-m-d H:i:s"; // fill this in with actual time in this format
    // both of the above formats are the same as what MySQL stores its
    // DATETIMEs in
    $start = new DateTime($start_time);
    $interval = $start->diff(new DateTime($end_time));
    echo $interval->format("d days h hours");
    <
  • DateInterval文档/gh>
  • DateTime: diff文件
SELECT TIMESTAMPDIFF(HOUR,createdate,NOW()) as diff_in_hours FROM table1;

然后在php端,您可以轻松地将diff_in_hours的值转换为天+小时格式。

MySQL中可以使用DATEDIFF()TIMEDIFF()函数

SELECT DATEDIFF(CURDATE(), createdate) AS output_day, 
TIMEDIFF(CURDATE(), createdate) AS output_time 
FROM message_table

对于output_day,它已经以天为单位。但是output_time需要额外的操作来获得时差的小时部分。

相关内容

  • 没有找到相关文章

最新更新