IntlCalendar::fieldDifference
(PHP 5.5.0, PECL >= 3.0.0a1)
IntlCalendar::fieldDifference — Calcule la différence entre le temps donné et le temps de l'objet
Description
$when
, int $field
)
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. A 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.
Liste de paramètres
-
when
-
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. -
field
-
Le champ qui représente la quuantité à comparer.
Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et
IntlCalendar::FIELD_COUNT
.
Valeurs de retour
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.
Exemples
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"; echo sprintf("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, avant opération : 1 mars 2013 09:19:11