IntlCalendar::fieldDifference

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

IntlCalendar::fieldDifference计算给定时间与该对象时间之间的差异

描述

面向对象风格

public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false

过程式风格

intlcal_field_difference(IntlCalendar $calendar, float $timestamp, int $field): int|false

返回给定时间与该对象设置时间之间的差异,该差异与field参数中指定的数量有关。

此方法旨在连续调用,首先使用最显著的感兴趣字段,然后依次调用到最不显著的字段。为此,作为副作用,此日历的指定字段的值将根据返回的值进行调整。

参数

calendar

一个IntlCalendar实例。

timestamp

field 表示的数量进行比较的时间。为了使结果为正数,此参数给定的时间必须早于调用方法的对象的时间。

field

表示正在比较的数量的字段。

IntlCalendar日期/时间字段常量之一。这些是介于0IntlCalendar::FIELD_COUNT之间的整数值。

返回值

返回与指定字段相关的单位中的(带符号的)时间差,如果失败则返回false

示例

示例 #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
"时间之前: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
"时间差为 %d 年,%d 个月, "
. "%d 天,%d 小时和 %d 分钟\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)
);

//现在它已经提前到目标时间,秒除外,
//我们没有测量它的差异
echo "时间之后: ", 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

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top