【问题标题】:format datetime(0000-00-00 00:00:00 ) to 00:00:00 with time remaing格式 datetime(0000-00-00 00:00:00 ) 到 00:00:00 剩余时间
【发布时间】:2011-06-27 23:15:50
【问题描述】:

我有一个$time 变量在未来某个时间设置。采用这种格式2011-02-15 23:19:44。现在我需要以00:00:10这种格式设置剩余时间。

例如,如果 $time 是未来 1 小时 3 分钟 10 秒。格式为01:03:10

【问题讨论】:

  • 如果它的 +24 小时差异?

标签: php datetime time timer string-formatting


【解决方案1】:

您应该考虑使用 DateTime 和 DateInterval 类。

$futureDate = new DateTime($time);
$currentDate = new DateTime();

$dateDiff = $currentDate->diff($futureDate);

echo $dateDiff->format('%H:%I:%S');

注意:如果差异超过 24 小时,那么您应该查看 %Y-%m-%d 值或总天数的 %a。

如果您想将任何额外的天数显示为 24 小时的倍数,那么:

printf('%d:%s', 
    $dateDiff->format('%a') * 24 + $dateDiff->format('%H'), 
    $dateDiff->format('%I:%S')
);

【讨论】:

  • ('%H:%I:%S') ?在分钟和秒上获得领先的“0”?
  • @jpwco 谢谢,我已经习惯了常规的日期时间格式:D
【解决方案2】:

这与此处讨论的问题基本相同:PHP Time Since Function?

您想要将未来的时间戳与当前时间进行比较...链接问题中的解决方案也适用于这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 2013-07-12
    相关资源
    最近更新 更多