Как получить дату из строкового формата

У нас есть запись в базе данных для времени события, оставленного как P1DT3H53M45S, Это означает 1 день, 3 часа 53 минуты и 45 секунд. Я хочу получить дату из этого формата.

Я могу извлечь оставшуюся продолжительность, взорвав эту строку и вычислить, а затем добавить к текущему времени и создать дату.

Есть ли лучший способ найти оставшуюся продолжительность, кроме взрыва?

1

Решение

Не нужно взрываться. использование DateInterval вместо:

$interval = new DateInterval('P1DT3H53M45S');
echo $interval->format('%d day, %h hours, %I minutes, %s seconds');
// 1 day, 3 hours, 53 minutes, 45 seconds
2

Другие решения

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

демонстрация

1

По вопросам рекламы [email protected]