PHP Conference Japan 2024

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
"Time before: ", 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 "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

添加注释

用户贡献注释

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