PHP减去20分钟的秒数

3

我有一个起始时间是20分钟

00:20:00

我想从这个时间中减去800秒,我一直在尝试使用strtotime('-800秒')但好像不起作用。

是否有其他更简单的方法可以实现这一目的?


00:20:00属于什么?换句话说,你试图构建什么? - camelCase
这只是一个简单的基于文本的赛车游戏,基本上完成5圈的基准时间是20分钟。车子越好,你将减去更多秒数。 - Liam Armour
啊,我明白了。下面的答案会很好用! - camelCase
2个回答

3
另一个选项是使用DateTimeDateInterval
创建一个DateTime对象,将其增加20分钟并减去800秒,使用DateInterval。然后获取这个修改后的DateTime对象与一个新的DateTime对象之间的差异。
这将给您一个DateInterval,它有一个format方法来格式化该间隔。
例如:
$dateTime = new DateTime();
echo $dateTime
    ->add(new DateInterval('PT20M'))
    ->sub(new DateInterval('PT800S'))
    ->diff(new DateTime())->format("%I:%S");

会导致:

06:40

演示


1
你可以像这样做:
$time = "00:20:00";
$unixdatetime = strtotime($time) - 800;
echo strftime("%M:%S",$unixdatetime);  // 06:40

也许从strftime()中移除%I会对结果更好?因为他们想要的是分钟和更低级别的时间单位。无论如何,解决方案很棒 :) - camelCase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接