将 datetime(0000-00-00 00:00:00 ) 格式化为 00:00:00 并保留时间

发布于 2024-10-17 13:52:29 字数 185 浏览 2 评论 0原文

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

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

I have a $time variable set some time in the future. In this format 2011-02-15 23:19:44. Now I need to set time remaining in this format 00:00:10.

If for example the $time is 1 hour, 3 minutes and 10 sec in the future. The format would be 01:03:10

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素年丶 2024-10-24 13:52:29

您应该考虑使用 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')
);

You should look at using the DateTime and DateInterval classes.

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

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

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

Note: if the difference is more than 24 hours, then you should look at the %Y-%m-%d values or %a for total days.

If you wanted to show any additional days as multiples of 24 hours then:

printf('%d:%s', 
    $dateDiff->format('%a') * 24 + $dateDiff->format('%H'), 
    $dateDiff->format('%I:%S')
);
邮友 2024-10-24 13:52:29

此处讨论的问题相同:PHP 自函数以来的时间?

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

This is essentially the same problem as discussed here: PHP Time Since Function?

You're wanting to compare a future timestamp against the current time... the solutions in the linked question will also apply to this one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文