конвертировать 00:02:47 в стандарт ISO_8601

zagrenat

Гуру форума
Регистрация
26 Дек 2006
Сообщения
245
Реакции
68
Доброе, как конвертировать входной 1256(в секундах) в "P1Y2M10DT2H30M" ( стандарт en.wikipedia.org/wiki/ISO_8601)

цифры условные в качестве примера приведены.
 
Интревал задан или нужно до текущего времени посчитать? Если втрое то для пхп версии >5.3 можно

Код:
$datetime1 = new DateTime( );
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('P%yY%mM%dDT%hH%iM%sS');
Хотя возможно есть вывод прям в этом формате
 
есть такая конструкция
$nnm=date('H:i:s', trim(ltrim(strtotime("01.01.1970 00:00:00")+$val->duration)));
и выводит как раз
00:02:47

а $val->duration вытаскивает просто секунды
а мне под микроформаты заточить надо , и там
<meta itemprop="duration" content="T1M33S" />
пока что решения не нашел(

только на перле есть
phpkode.com/source/p/feng-office-your-world-wide-office/fengoffice/library/PEAR/SOAP/Type/duration.php
 
ну так сделай формат у даты соответствующий
date('\Th\Hi\Ms\S',
но если ноль в часах - критичен нужно делать либо проверку либо быстрокостыль $nnm= str_replace('T0H', 'T', $nnm);
 
во так получилось как надо)
date('\TH\Hi\Ms\S',
 
Назад
Сверху