如何从字符串格式中获取日期

时间:2014-09-18 07:59:11

标签: php string date

我们在数据库中有一个条目,其中剩余的事件时间为P1DT3H53M45S,这意味着1天,3小时53分钟和45秒。我想从这种格式中检索日期。

我可以通过爆炸此字符串和计算来检索剩余的持续时间,然后添加到当前时间并创建日期。

除了爆炸之外,还有更好的方法可以找到剩余的持续时间吗?

2 个答案:

答案 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');

demo