DateInterval::format
(PHP 5 >= 5.3.0)
DateInterval::format — Formatea el intervalo
Descripción
public string DateInterval::format
( string
$format
)Formatea el intervalo.
Parámetros
-
format -
Los siguietes caracteres están reconocidos en el parámetro de cadena format. Cada carácter de formato debe ser prefijado con un signo de porcentaje (%).Carácter formatDescripción Valores de ejemplo % Literal % % Y Años, numérico, al menos 2 dígitos empezando con 0 01, 03 y Años, numérico 1, 3 M Meses, numérico, al menos 2 dígitos empezando con 0 01, 03, 12 m Meses, numérico 1, 3, 12 D Días, numérico, al menos 2 dígitos empezando con 0 01, 03, 31 d Días, numérico 1, 3, 31 a Número total de días como resultado de una operación con DateTime::diff(), o de lo contrario (unknown) 4, 18, 8123 H Horas, numérico, al menos 2 dígitos empezando con 0 01, 03, 23 h Horas, numérico 1, 3, 23 I Minutos, numérico, al menos 2 dígitos empezando con 0 01, 03, 59 i Minutos, numérico 1, 3, 59 S Segundos, numérico, al menos 2 dígitos empezando con 0 01, 03, 57 s Segundos, numérico 1, 3, 57 R Signo "-" cuando es negativo, "+" cuando es positivo -, + r Signo "-" cuando es negativo, vacío cuando es positivo -,
Valores devueltos
Devuelve el intervalo formateado.
Notas
Nota:
El método DateInterval::format() no recalcula los excesos en cadenas de hora ni en segmentos de fecha. Esto es así porque no es posible analizar valores como "32 días" el cual podría ser interpretado como cualquier cosa desde "1 mes y 4 días" hasta "1 mes y un día".
Ejemplos
Ejemplo #1 Ejemplo de DateInterval
<?php
$intervalo = new DateInterval('P2Y4DT6H8M');
echo $intervalo->format('%d días');
?>
El resultado del ejemplo sería:
4 días
Ejemplo #2 DateInterval y excesos
<?php
$intervalo = new DateInterval('P32D');
echo $intervalo->format('%d días');
?>
El resultado del ejemplo sería:
32 días
Ejemplo #3 DateInterval y DateTime::diff() con los modificadores %a y %d
<?php
$enero = new DateTime('2010-01-01');
$febrero = new DateTime('2010-02-01');
$intervalo = $febrero->diff($enero);
// %a imprimirá el múmero total de días.
echo $intervalo->format('%a total de días')."\n";
// Mientras que %d sólo imprimirá el múmero total de días no cubiertos por el
// mes.
echo $intervalo->format('%m mes, %d días');
?>
El resultado del ejemplo sería:
31 total days 1 month, 0 days