Pls note these important abbreviations; P: periodY: yearsM: monthsD: daysT: timeH: hoursM: minutesS: secondsThe above is from the ISO 8601 - an international standard that defines how to use, store, and transfer date, time, and duration information.
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — Formatea el intervalo
format
Carácter format |
Descripción | Valores de ejemplo |
---|---|---|
% |
Literal % |
% |
Y |
Años, numérico, al menos 2 dígitos con 0 a la izquierda | 01 , 03 |
y |
Años, numérico | 1 , 3 |
M |
Meses, numérico, al menos 2 dígitos con 0 a la izquierda | 01 , 03 , 12 |
m |
Meses, numérico | 1 , 3 , 12 |
D |
Días, numérico, al menos 2 dígitos con 0 a la izquierda | 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 con 0 a la izquierda | 01 , 03 , 23 |
h |
Horas, numérico | 1 , 3 , 23 |
I |
Minutos, numérico, al menos 2 dígitos con 0 a la izquierda | 01 , 03 , 59 |
i |
Minutos, numérico | 1 , 3 , 59 |
S |
Segundos, numérico, al menos 2 dígitos con 0 a la izquierda | 01 , 03 , 57 |
s |
Segundos, numérico | 1 , 3 , 57 |
F |
Microsegundos, numérico, al menos 6 dígitos con 0 a la izquierda 0 | 007701 , 052738 , 428291 |
f |
Microsegundos, numérico | 7701 , 52738 , 428291 |
R |
Signo "- " cuando es negativo, "+ " cuando es positivo |
- , + |
r |
Signo "- " cuando es negativo, vacío cuando es positivo |
- ,
|
Devuelve el intervalo formateado.
Versión | Descripción |
---|---|
7.2.12 |
Los caracteres de formato F y f
ahora siempre serán positivos.
|
7.1.0 |
Se han añadido los caracteres de formato
F y f .
|
Ejemplo #1 Ejemplo de DateInterval
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');
?>
El resultado del ejemplo sería:
4 days
Ejemplo #2 DateInterval y excesos
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d days');
?>
El resultado del ejemplo sería:
32 days
Ejemplo #3 DateInterval y DateTime::diff() con los modificadores %a y %d
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a imprimirá el múmero total de días.
echo $interval->format('%a total days')."\n";
// Mientras que %d sólo imprimirá el múmero total de días no cubiertos por el
// mes.
echo $interval->format('%m month, %d days');
?>
El resultado del ejemplo sería:
31 total days 1 month, 0 days
Nota:
El método DateInterval::format() no recalcula los desbordamientos en los strings de tiempo ni en los segmentos de fecha. Esto se espera porque no es posible desbordar valores como
"32 días"
que podrían interpretarse en algo como, desde"1 mes y 4 días"
hasta"1 mes y 1 día"
.
Pls note these important abbreviations; P: periodY: yearsM: monthsD: daysT: timeH: hoursM: minutesS: secondsThe above is from the ISO 8601 - an international standard that defines how to use, store, and transfer date, time, and duration information.