• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • IntlCalendar::fieldDifference()

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

    Calculate difference between given time and this objectʼs time

    说明

    面向对象风格
    publicIntlCalendar::fieldDifference(float $when,int $field): int
    过程化风格
    intlcal_field_difference(IntlCalendar$cal,float $when,int $field): int

    Return the difference between the given time and the time this object is set to, with respect to the quantity specified the$fieldparameter.

    This method is meant to be called successively, first with the most significant field of interest down to the least significant field. To this end, as a side effect, this calendarʼs value for the field specified is advanced by the amount returned.

    参数

    $cal

    The IntlCalendar resource.

    $when

    The time against which to compare the quantity represented by the$field. For the result to be positive, the time given for this parameter must be ahead of the time of the object the method is being invoked on.

    $field

    The field that represents the quantity being compared.

    One of the IntlCalendar date/time field constants. These are integer values between0and IntlCalendar::FIELD_COUNT.

    返回值

    Returns a(signed)difference of time in the unit associated with the specified field 或者在失败时返回FALSE.

    范例

    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 "Time before: ", IntlDateFormatter::formatObject($cal1), "\n";
    printf(
        "The difference in time is %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)
    );
    //now it was advanced to the target time, exception for the seconds,
    //for which we did not measure the difference
    echo "Time after: ", IntlDateFormatter::formatObject($cal1), "\n";

    以上例程会输出:

    Time before: 29 févr. 2012 09:00:11
    The difference in time is 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s)
    Time after: 1 mars 2013 09:19:11