(PHP 5 >= 5.3.0)
DateInterval::format — Formatea el intervalo
Formatea el intervalo.
Carácter format | Descripció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 | Cantidad total de días | 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 | -, |
Devuelve el intervalo formateado.
Note:
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".
Example #1 Ejemplo de DateInterval
<?php
$intervalo = new DateInterval('P2Y4DT6H8M');
echo $intervalo->format('%d días');
?>
El resultado del ejemplo sería:
4 días
Example #2 DateInterval y excesos
<?php
$intervalo = new DateInterval('P32D');
echo $intervalo->format('%d días');
?>
El resultado del ejemplo sería:
32 días
Example #3 DateInterval and DateTime::diff() with the %a and %d modifiers
<?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