【问题标题】:Php date and Hours issuePHP日期和时间问题
【发布时间】:2014-08-20 21:45:14
【问题描述】:

我想像这样显示两个日期时间之间的时间:

$diff = strtotime('2014-06-30 15:23:19') - strtotime('2014-06-30 15:20:16');
echo "time: ".date('H:i:s', $diff);

结果是:

time: 01:03:03

我不明白为什么小时显示“01”? 我尝试使用 'h:i:s' 或 'g:i:s' 但它不起作用。

我想要这个结果:

time: 00:03:03

【问题讨论】:

  • 回显日期(time(),"h:i:s");
  • 交换时间顺序。你在这里得到一个负值,因为你正在从过去中减去未来。
  • 我的错误,我的原始代码中的顺序是好的
  • 当您执行date('H:i:s', $diff) 之类的操作时,您是在要求 php 格式化时间(1970 年 1 月 1 日,UTC)之后的 $diff 秒。如果您不住在格林威治标准时间 +0 的时区,您将看不到您期望的值。

标签: php date hour


【解决方案1】:

看看php内置的DateTime::diff函数。

你可以这样做:

$time1 = new DateTime('2014-06-30 15:20:16');
$time2 = new DateTime('2014-06-30 15:23:19');

$diff = $time1->diff($time2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多