(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::fieldDifference â Calcule la diffĂ©rence entre le temps donnĂ© et le temps de l'objet
Style orienté objet
Style procédural
Retourne la différence entre le temps donné et le temps de cet
objet, en respectant la quantité spécifiée par le paramÚtre
field.
Cette mĂ©thode est prĂ©vue pour ĂȘtre appelĂ©e successivement, tout d'abord avec le champ d'intĂ©rĂȘt le plus significatif, puis avec le champ le moins significatif. Ă la fin, en guise d'effet de bord, la valeur du calendrier pour le champ spĂ©cifiĂ© sera avancĂ©e par la durĂ©e retournĂ©e.
calendartimestamp
Le temps utilisé pour la comparaison avec la quantité représentée
par le champ field. Pour que le résultat
soit positif, le temps fourni dans ce paramĂštre doit ĂȘtre dans le
futur par rapport au temps de l'objet de la méthode.
fieldLe champ qui représente la quantité à comparer.
Une constante de champ
date/heure IntlCalendar. Ce sont des valeurs entiĂšres
comprises entre 0 et
IntlCalendar::FIELD_COUNT.
Retourne une différence (signée) de temps, en utilisant l'unité associée
avec le champ spécifié ou false si une erreur survient.
Exemple #1 Exemple avec 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 "Temps, avant opération : ", IntlDateFormatter::formatObject($cal1), "\n";
printf(
"La différence de temps est de %d année(s), %d mois, "
. "%d jour(s), %d heure(s) et %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)
);
// maintenant, le temps cible a été avancé, sauf pour les secondes,
// pour lesquelles nous ne mesurons pas la différence
echo "Temps, aprÚs opération : ", IntlDateFormatter::formatObject($cal1), "\n";L'exemple ci-dessus va afficher :
Temps, avant opération : 29 févr. 2012 09:00:11 La différence de temps est de 1 année(s), 0 mois, 1 jour(s), 0 heure(s) et 19 minute(s) Temps, aprÚs opération : 1 mars 2013 09:19:11