DateInterval::format

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

DateInterval::formatFormatea el intervalo

Descripción

public DateInterval::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 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 -,

Valores devueltos

Devuelve el intervalo formateado.

Historial de cambios

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.

Ejemplos

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

Notas

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".

Ver también

add a note

User Contributed Notes 1 note

up
1
online dot cloudmeetings dot marco at gmail dot com
7 months ago
Pls note these important abbreviations;

P: period
Y: years
M: months
D: days
T: time
H: hours
M: minutes
S: seconds

The above is from the ISO 8601 - an international standard that defines how to use, store, and transfer date, time, and duration information.
To Top