使用strtotime PHP

时间:2017-11-02 05:04:04

标签: php strtotime

我试图用strtotime()删除1小时但没有成功。

$taskentry['date_start']:2017-11-02 02:19:59

$taskentry['date_end']:2017-11-02 02:32:06

<?php 
     $cut = 3600;
     $date_start = strtotime($taskentry['date_start']);
     $date_end =  strtotime($taskentry['date_end']);
     $total = ($date_end - $date_start) - $cut; 
         if($total < 0){
         echo '0';
         }else{
         echo date("H:i:s", $total);
         }?>

结果应该返回12:07但它返回0.我也尝试过

$cut = strtotime('-60min') and $cut = strtotime('-1 hour');

返回相同的结果。

欢迎任何建议。

3 个答案:

答案 0 :(得分:0)

if($total > 0)

将小于符号的值更改为大于符号

答案 1 :(得分:0)

您的代码没有任何问题 开始和结束之间的时差小于一小时 然后你减去一个小时,这意味着它是一个负数 然后你说它是负输出“0”。

代码完全符合预期。
看到这里有一个多小时的差异:

$cut = 3600;
$date_start = strtotime("2017-11-02 02:19:59");
$date_end =  strtotime("2017-11-02 03:32:06");
$total = ($date_end - $date_start) - $cut; 

 if($total < 0){
     echo '0';
 }else{
     echo date("H:i:s", $total);
 }

输出:

01:12:07

https://3v4l.org/QRLdK

答案 2 :(得分:0)

简单溶解

<?php

$time="10:09";
$time = date('H:i', strtotime($time.'-1 hour'));
echo $time;

?>

在这里试试Demo