【问题标题】:Difference between two time values in php [duplicate]php中两个时间值之间的差异[重复]
【发布时间】:2014-10-23 10:44:20
【问题描述】:

我有两个时间值如下

$start = '13:00:00';
$end = '21:00:00';

我想计算这两个时间值之间的差异,我想要格式为 00:00:00 的差异值(这里的结果是 08:00:00

我正在使用下面的代码来计算差异

$time = date( "h:i:s", strtotime($end) - strtotime($start));

但它给我的结果是01:30:00

如果有人有任何想法请帮忙,我不想使用DateTime

在我看来,它不是重复的,如果是,请告诉我答案,如果你的 可以在重复的问题中找到

【问题讨论】:

标签: php


【解决方案1】:
   $datetime1 = new DateTime('13:00:00');
   $datetime2 = new DateTime('21:00:00');
   $interval = $datetime1->diff($datetime2);
   echo $interval->format('%H:%I:%S');

【讨论】:

  • OP 声明他不想使用 DateTime 类。
  • 有什么方法可以在不使用 DateTime 类的情况下进行计算?
  • 操作员说他不想处理日期。这不会强制使用日期
  • DateTime 的唯一问题是我收到此错误Fatal error: Call to undefined method DateTime::diff() 可能是因为我可能没有一些库
  • 不,没有办法在不使用类的情况下完成上述操作。也许其他方法可以获取您的价值,但没有一个秘密的其他类可以像 DateTime 类一样工作,但具有您更喜欢的名称
【解决方案2】:

试试这个代码:

$time1 = strtotime('13:00:00');
$time2 = strtotime('21:00:00');
$diff = $time2 - $time1;
echo 'Difference: '.date('H:i:s', $diff);

【讨论】:

  • 结果是 13:30:00 :(
  • 这与 OPs 代码相同
【解决方案3】:

使用DateTime::diff 函数更容易做到这一点。

该站点有一个示例。

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

【讨论】:

  • 我有没有提到我想要两个日期之间的天数??
  • Manoj 而不是那条评论,您可以尝试将时间传递给此方法 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2018-07-24
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
相关资源
最近更新 更多