我们在数据库中有一个条目,其中剩余的事件时间为P1DT3H53M45S
,这意味着1天,3小时53分钟和45秒。我想从这种格式中检索日期。
我可以通过爆炸此字符串和计算来检索剩余的持续时间,然后添加到当前时间并创建日期。
除了爆炸之外,还有更好的方法可以找到剩余的持续时间吗?
答案 0 :(得分:2)
无需爆炸。请改用DateInterval
:
$interval = new DateInterval('P1DT3H53M45S');
echo $interval->format('%d day, %h hours, %I minutes, %s seconds');
// 1 day, 3 hours, 53 minutes, 45 seconds
答案 1 :(得分:1)
P1DT3H53M45S
不是日期,而是间隔。您可以使用DateInterval
类创建DateInterval
对象,您可以从中对其进行格式化,或将其添加到您的某些日期。
$interval = new DateInterval('P1DT3H53M45S');
print_r($interval);
# format it
echo $interval->format('%d days, %h hours, %i minutes, %s seconds');
# add it to some date
$dt = new DateTime;
$dt->add($interval);
echo $dt->format('Y-m-d H:i:s');