DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::formatFormatea el intervalo

Descripción

publicDateInterval::format(string$format): string

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ónValores de ejemplo
%Literal %%
YAños, numérico, al menos 2 dígitos empezando con 001, 03
yAños, numérico1, 3
MMeses, numérico, al menos 2 dígitos empezando con 001, 03, 12
mMeses, numérico1, 3, 12
DDías, numérico, al menos 2 dígitos empezando con 001, 03, 31
dDías, numérico1, 3, 31
aNúmero total de días como resultado de una operación con DateTime::diff(), o de lo contrario (unknown)4, 18, 8123
HHoras, numérico, al menos 2 dígitos empezando con 001, 03, 23
hHoras, numérico1, 3, 23
IMinutos, numérico, al menos 2 dígitos empezando con 001, 03, 59
iMinutos, numérico1, 3, 59
SSegundos, numérico, al menos 2 dígitos empezando con 001, 03, 57
sSegundos, numérico1, 3, 57
RSigno "-" cuando es negativo, "+" cuando es positivo-, +
rSigno "-" 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

Ver también

To Top