IntlCalendar::set

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

IntlCalendar::set设置一个时间字段或同时设置几个通用字段

描述

面向对象风格

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): true

过程式风格

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
    IntlCalendar $cal,
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): bool

将特定字段设置为给定值,或同时设置几个通用字段。接受的值范围取决于日历是否使用宽松模式

对于冲突的字段,最后设置的字段优先。

此方法不能使用恰好四个参数调用。

参数

cal

一个IntlCalendar 实例。

field

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

value

给定字段的新值。

year

IntlCalendar::FIELD_YEAR 的新值。

month

IntlCalendar::FIELD_MONTH 的新值。月份序列从零开始,即 1 月用 0 表示,2 月用 1 表示,…,12 月用 11 表示,而 13 月(如果日历有)用 12 表示。

dayOfMonth

IntlCalendar::FIELD_DAY_OF_MONTH 的新值。

hour

IntlCalendar::FIELD_HOUR_OF_DAY 的新值。

minute

IntlCalendar::FIELD_MINUTE 的新值。

second

IntlCalendar::FIELD_SECOND 的新值。

返回值

始终返回 true

变更日志

版本 描述
8.2.0 返回值类型现在为 true;以前是 bool

示例

示例 #1 IntlCalendar::set()

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

//后面调用的优先级更高
$cal = new IntlGregorianCalendar(2013, 6 /* 7 月 */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));


$cal = new IntlGregorianCalendar(2013, 6 /* 7 月 */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//时间尚未重新计算。如果我们清除扩展年份,
//之前设置的年份将被使用
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

以上示例将输出

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

参见

添加说明

用户贡献说明

此页面没有用户贡献说明。
To Top