IntlCalendar::fieldDifference
(PHP 5.5.0, PECL >= 3.0.0a1)
IntlCalendar::fieldDifference — Calcular la diferencia entre el instante dado y el de este objeto
Descripción
Estilo orientado a objetos
$when
, int $field
)Estilo por procedimientos
Devuelve la diferencia entre el instante dado y el instante al que está establecido
este objeto, con respecto a la cantidad especificada por el parámetro
field.
Se pretende que este método se llamado sucesivamente, primero con el campo de interés más significativo hasta el menos significativo. Para es propósito, y como efecto segundario, el valor del calendario para el campo especificado avanza la cantidad devuelta.
Parámetros
-
cal -
El recurso IntlCalendar.
-
when -
El instante con el que comparar la cantidad representada por
field. Para que el resultado sea positivo, el instante dado a este parámetro debe estar por delante del instante del objeto que invocó al método. -
field -
El campo que representa la cantidad a comparar.
Una de las constantes del campo fecha/hora de IntlCalendar. Son valores de tipo integer entre 0 y
IntlCalendar::FIELD_COUNT.
Valores devueltos
Devuelve una diferencia de tiempo (con signo) en la unidad asociada al
campo especificado o FALSE en caso de error.
Ejemplos
Ejemplo #1 IntlCalendar::fieldDifference()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');
$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();
echo "Instante antes: ", IntlDateFormatter::formatObject($cal1), "\n";
printf(
"La diferencia es %d year(s), %d month(s), "
. "%d day(s), %d hour(s) and %d minute(s)\n",
$cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
$cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
$cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
$cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
$cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);
// ahora avanzó el instante objetivo, con excepción de los segundos,
// para el cual no medimos la diferencia
echo "Instante después: ", IntlDateFormatter::formatObject($cal1), "\n";
El resultado del ejemplo sería:
Instante antes: 29 févr. 2012 09:00:11 La diferencia es 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s) Instante después: 1 mars 2013 09:19:11