Page 1 of 1

DURATION

Posted: Sat Dec 01, 2018 7:05 am
by ulan
Подскажите, в базе длительность хранится в секундах
тэг <!--DURATION--> выводит как 00:00:00
Для микроразметки мне надо выводить в PTS формате PT00H43M43S
теоритически я могу преобразовать на пхп через
function iso8601_duration($seconds)
{
return strftime ("PT%HH%MM%SS", $seconds);
}

но у меня нету секунд ибо <!--DURATION--> уже их преобразовал
просьба сделать тэг <!--DURATION_PTS-->

Re: DURATION

Posted: Sat Dec 01, 2018 7:21 am
by admin
"тэг <!--DURATION--> выводит как 00:00:00

но у меня нету секунд ибо <!--DURATION--> "


так есть секунды или нет? в первой строке они есть

Re: DURATION

Posted: Sat Dec 01, 2018 7:32 am
by ulan
<!--DURATION--> выводит как 00:00:00
движок преобразовал уже в часы минуты секунды
мне еще надо преобразовать в формат PTS
PT00H43M43S чтобы вот так было

моя функция переводит сами секунды как они хранятся в базе а именно целым числом к примеру 10 минут хранится как 600

Re: DURATION

Posted: Sat Dec 01, 2018 7:41 am
by admin
Ясно

добавил в ап таг <!--DURATION_SECONDS--> котрый выводит именно в секундах с которыми мможно делать что угодно

Re: DURATION

Posted: Sat Dec 01, 2018 7:48 am
by ulan
Так может еще добавим сразу в формате PTS? Чтобы движок сразу сделал это

Re: DURATION

Posted: Sat Dec 01, 2018 7:59 am
by ulan
Хм, а моя функция криво работает на разных версиях пхп
поэтому если можете сделайте с движка чтобы работало плиз

Re: DURATION

Posted: Sat Dec 01, 2018 8:26 am
by admin
Можете использовать функцию date
она совершенно точно работает одинаково на всех пхп

Re: DURATION

Posted: Sat Dec 01, 2018 2:29 pm
by ulan
Может пригодиться кому - то
function iso8601_duration($seconds)
{
$hours = floor($seconds / 3600);
$seconds = $seconds % 3600;

$minutes = floor($seconds / 60);
$seconds = $seconds % 60;

return sprintf('PT%02dH%02dM%02dS', $hours, $minutes, $seconds);
}

echo iso8601_duration(<!--DURATION_SECONDS-->);

Re: DURATION

Posted: Sat Dec 01, 2018 6:11 pm
by admin
Спасибо, да, думаю пригодится.