logo logo
Aquí está el menú
Duración de tiempo a formato ISO 8601 en PHP

Pues eso, vamos a transformar duración de tiempos en formato ISO 8601, por ejemplo para su uso con Schema. Por ejemplo para las recipes de schema, para la duración de la receta:

[php]
$prepTime = ‘2 horas y 23 Minutos’;
$prepTime = strtolower( $prepTime );
$prepTime = str_replace( ‘minuto’, ‘minute’, $prepTime );
$prepTime = str_replace( ‘hora’, ‘hour’, $prepTime );
$time = strtotime( $prepTime, 0);
$prepTime = my_iso8601_duration( $time );
[/php]

La función my_iso8601_duration la he cogido de stackoverflow.

[php]
function my_iso8601_duration( $seconds )
{
$days = floor($seconds / 86400);
$seconds = $seconds % 86400;

$hours = floor($seconds / 3600);
$seconds = $seconds % 3600;

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

return sprintf(‘P%dDT%dH%dM%dS’, $days, $hours, $minutes, $seconds);
}
[/php]