【问题标题】:Return the difference between two (dates and time ) PHP返回两个(日期和时间)之间的差异 PHP
【发布时间】:2014-02-19 16:33:38
【问题描述】:

我尝试了堆栈溢出时可用的大部分方法,但似乎都没有。

我试图以任何方式比较两者(日期和时间格式)。并计算它们之间的差异是否在5秒之内

第一个日期是当前日期:

$today   = date("Y-m-d H:i:s");

第二个日期取自mysql数据库:

$result = mysql_query("SELECT * FROM BUS_DATA where BusRegID = 'bus'") or die(mysql_error());
$row     = mysql_fetch_array($result);
$update_date  = $row["update_date"];

答案应该分为年、月、日、小时、分钟和秒部分。

我正在运行 PHP 5.3.3 版

编辑:大多数答案只在时间范围内给出结果,我想检查日期是否匹配,然后比较一天中的时间是否在 5 秒内,而不是你们提前:)

【问题讨论】:

  • 您是否尝试过自己比较它们?

标签: php mysql date time


【解决方案1】:

如果你想知道它是否在 5 秒之内,那么使用 Timestamps,将其变成一个简单的 int 计算。

$now = time();
$test = strtotime($update_date);
if($now - $test > 5) {
    //NOT WITHIN 5 SECONDS
}

【讨论】:

    【解决方案2】:

    使用 strtotime,它几乎可以理解任何日期格式:

    $timeDiff = abs(strtotime($today) - strtotime($update_date));
    

    这会给你以秒为单位的日期之间的差异。

    【讨论】:

    • 为什么在$today 上使用strtotime?为什么不直接使用time()
    • 感谢您的帮助,时间和今天都还可以,但我还需要日期部分来解决其他问题,因此我选择您作为最佳答案,再次非常感谢您: )
    【解决方案3】:
    Try this
    function getTimes($t1, $t2)
    {
    $timeFirst  = strtotime($t1);
    $timeSecond = strtotime($t2);
    $differenceInSeconds = $timeSecond - $timeFirst;
    $h=0;
    $m  = floor($differenceInSeconds / 60);
    $s  = $differenceInSeconds % 60;
    if ($m>=60)
    {
      $h = floor($m / 60);
      $m = $m % 60;
    }
    $tim = $h.':'.$m.':'.$s;
    return $tim;
    }
    it will return difference time in hours:min:sec
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多