У нас есть запись в базе данных для времени события, оставленного как P1DT3H53M45S
, Это означает 1 день, 3 часа 53 минуты и 45 секунд. Я хочу получить дату из этого формата.
Я могу извлечь оставшуюся продолжительность, взорвав эту строку и вычислить, а затем добавить к текущему времени и создать дату.
Есть ли лучший способ найти оставшуюся продолжительность, кроме взрыва?
Не нужно взрываться. использование DateInterval
вместо:
$interval = new DateInterval('P1DT3H53M45S');
echo $interval->format('%d day, %h hours, %I minutes, %s seconds');
// 1 day, 3 hours, 53 minutes, 45 seconds
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');