# IntlCalendar::fieldDifference

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calcular la diferencia entre el instante dado y el de este objeto

### Descripción

Estilo orientado a objetos

public IntlCalendar::fieldDifference(float `$when`, int `$field`): int

Estilo por procedimientos

intlcal_field_difference(IntlCalendar `$cal`, float `$when`, int `$field`): int

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