2013-09-29 5 views
4

Продолжительность времени рецепта хранится в моей базе данных как строка: «01:50» Я пытаюсь преобразовать его в стандарт продолжительности ISO 8601 без успеха ,Преобразование H: i в стандарт ISO 8601

Это то, что я использую, чтобы вызвать поле и разобрать его страницу:

$totalTime = ($extraField->value); 
$itempr = "itemprop=\"totalTime\" content=\"$totalTime\""; 

Подобно этому, он появляется в Google структурированном инструмент тестирования данных, как «00:50», который не принимается Google , Насколько я понимаю, это должно выглядеть так: PT1H50M

Есть ли у кого-нибудь идеи о том, как преобразовать его в формат ISO 8601? Пожалуйста, имейте в виду, что я не увлекаюсь разработкой с помощью PHP, поэтому будьте как можно более объяснительными. Благодаря!

+2

Возможный дубликат: http://stackoverflow.com/questions/5322285/how-do-i-convert-datetime-to-iso-8601-in-php? Rq = 1 –

+0

Итак, 'PT1H50M' - это то, что вы хотите? [Возможно, вы захотите посмотреть на это] (http://www.php.net/manual/en/datetime.format.php) или, возможно, [этот] (http://www.php.net/manual/ ен/dateinterval.format.php). – Wrikken

+1

Хорошо, я понял! $ datetime = new DateTime ($ extraField-> value); $ totalTime = $ datetime-> format ('\ P \ TG \ Hi \ M'); $ itempr = "itemprop = \" totalTime \ "content = \" $ totalTime \ ""; –

ответ

7

Как вы уже писали в комментариях:

echo (new DateTime('01:50'))->format('\P\TG\Hi\M'); 

или вы можете преобразовать его уже в базе данных с использованием TIME_FORMAT функции:

SELECT TIME_FORMAT('01:50', 'PT%kH%iM'); 
Смежные вопросы