PHP Conference Japan 2024

IntlCalendar::roll

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

IntlCalendar::roll添加值到字段而不进位到更重要的字段

描述

面向对象风格

public IntlCalendar::roll(int $field, int|bool $value): bool

过程化风格

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): bool

向字段添加一个(带符号的)值。与 IntlCalendar::add() 的区别在于,当字段值溢出时,它不会进位到更重要的字段。

参数

calendar

一个 IntlCalendar 实例。

field

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

value

要添加到字段的(带符号的)值,向上滚动(添加 1)为 true,向下滚动(减去 1)为 false

返回值

成功返回 true,失败返回 false

范例

例 1 IntlCalendar::roll()

<?php
ini_set
('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /*六月*/, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /*六月*/, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); //向上滚动,与滚动 +1 相同
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

以上示例将输出

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

参见

添加笔记

用户贡献笔记

此页面没有用户贡献的笔记。
To Top