【问题标题】:Get time difference and show in proper format [closed]获取时差并以正确的格式显示[关闭]
【发布时间】:2013-04-12 12:54:53
【问题描述】:

我在数据库中有两个字段,名为 start_time(12:30) 和 end_time(13:35)。我想以“4hrs 30Mins”格式显示它们的区别。我怎样才能完成它?

【问题讨论】:

  • @downvoters:如果我的问题有问题,请发表评论。我可能无法说服我的要求到底是什么?
  • 我没有投反对票,但一般来说,这里更容易接受一些有错误代码的问题...最好先谷歌搜索一下,然后再问一些问题。
  • @lhsan:感谢您的评论,但我有点卡在这里,所以任何有解决方案的 1 都请告诉我。
  • 看看约翰·康德的回答,充满了暗示......
  • 我觉得你可以去掉这个问题的mysql标签。

标签: php mysql


【解决方案1】:

在此问题被删除之前,这是一些慈善活动

$date1    = new DateTime($row['date1']);
$date2    = new DateTime($row['date2']);
$interval = $date2->diff($date1);
$period   = $interval->format('%y years, %m months, %d days, %h hours, %i minutes');
$period   = str_replace(array('0 years,', ' 0 months,', ' 0 days,', ' 0 hours,', ' 0 minutes,'), '', $period);
return str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ', ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $period);

参考

【讨论】:

    【解决方案2】:

    我自己解决了,谢谢。

    $from_time = strtotime($job->start_time);
    $to_time = strtotime($job->end_time);
    $mins=round(abs($to_time - $from_time) / 60,2);
    $hrs=round($mins/60,2);
    $arr=explode(".",$hrs);
    echo $arr[0]." Hrs ".$arr[1]." Mins"; 
    

    【讨论】:

      【解决方案3】:

      快速浏览一下 PHP 文档将为您指明正确的方向。

      要比较两个日期,diff method of the DateTime object 可能有用。

      完成后,您可以使用date 随意格式化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-14
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2023-04-11
        • 2020-03-30
        • 2019-10-15
        相关资源
        最近更新 更多