【问题标题】:how to get a time difference between two dates in ("Y-m-d H:i:s") format?如何以(“Y-m-d H:i:s”)格式获取两个日期之间的时差?
【发布时间】:2014-03-08 16:24:41
【问题描述】:

我正在尝试获取两个日期时间之间的差异并将其返回为一分钟。日期和时间采用 date("Y-m-d H:i:s") 格式。但似乎我无法正确处理。我做到了

$time=date("Y-m-d H:i:s");
$time=date("2014-01-13 08:18:25");

$interval = $time->diff($login_time);
$elapsed = $interval->format(%i minutes);
echo $elapsed;

这是显示按摩 "在非对象上调用成员函数 diff()"

因为我对日期格式不够好。所以请帮帮我。

有什么方法可以解决这个问题?

【问题讨论】:

  • 嗯,首先,$time 不是一个对象,正如它所说的。它只是一个包含当前日期的字符串。也是重复的,请参阅stackoverflow.com/questions/676824/… 的已接受答案
  • 在把问题放在这里之前做谷歌搜索

标签: php date


【解决方案1】:

试试这个:

$date1 = new DateTime('2013-01-13 04:10:58');
$datediff = $date1->diff(new DateTime('2013-09-11 10:25:00'));
echo $datediff->i;

更多详情见此链接:http://www.php.net/manual/en/book.datetime.php

【讨论】:

  • 如果相差超过59分钟,结果无效。
【解决方案2】:

获取两个日期之间的分钟差

$now     = new DateTime;
$before  = new DateTime('2014-01-10 08:18:25');
$diff    = $now->diff($before);
$elapsed = $diff->days * 24 * 60 + $diff->h * 60 + $diff->i;

demo

【讨论】:

    【解决方案3】:

    使用以下代码获取所有预期参数的时间。

    $time1=date("Y-m-d H:i:s");
    $time2=date("2014-01-13 08:18:25");


    $seconds = strtotime($time1) - strtotime($start);


    $year = floor(($seconds)/(60*60*24*365));
    $months = floor($seconds / 86400 / 30);
    $week = floor($seconds / 604800);
    $天 = 楼层($秒/86400);
    $hours = floor(($seconds - ($days * 86400)) / 3600);
    $minutes = floor(($seconds - ($days * 86400) - ($hours * 3600))/60);
    $seconds = floor(($seconds - ($days * 86400) - ($hours * 3600) - ($分钟*60)));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2021-09-14
      • 2019-07-21
      相关资源
      最近更新 更多