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

    date_isodate_set

    (PHP 5 >= 5.2.0, PHP 7)

    设置 ISO 日期

    说明

    面向对象风格
    publicDateTime::setISODate(int $year,int $week[,int $day= 1]): DateTime
    过程化风格
    date_isodate_set(DateTime$object,int $year,int $week[,int $day= 1]): DateTime

    以 ISO 8601 规范的格式设置日期,使用周和日的偏移量作为参数,而不是使用月和日。

    参数

    $object

    仅过程化风格:由date_create()返回的DateTime类型的对象。此函数会修改这个对象。

    $year

    年份。

    $week

    周。

    $day

    从周的第一天计算,日在一周内的偏移量。

    返回值

    返回被修改的 DateTime 对象,或者在失败时返回FALSE.

    更新日志

    版本说明
    5.3.0将返回值从NULL改为DateTime类型。

    范例

    Example #1DateTime::setISODate()例程

    面向对象风格

    <?php
    $date = new DateTime();
    $date->setISODate(2008, 2);
    echo $date->format('Y-m-d') . "\n";
    $date->setISODate(2008, 2, 7);
    echo $date->format('Y-m-d') . "\n";
    ?>
    

    过程化风格

    <?php
    $date = date_create();
    date_isodate_set($date, 2008, 2);
    echo date_format($date, 'Y-m-d') . "\n";
    date_isodate_set($date, 2008, 2, 7);
    echo date_format($date, 'Y-m-d') . "\n";
    ?>
    

    以上例程会输出:

    2008-01-07
    2008-01-13
    

    超出有效范围的部分,会加到上一级

    <?php
    $date = new DateTime();
    $date->setISODate(2008, 2, 7);
    echo $date->format('Y-m-d') . "\n";
    $date->setISODate(2008, 2, 8);
    echo $date->format('Y-m-d') . "\n";
    $date->setISODate(2008, 53, 7);
    echo $date->format('Y-m-d') . "\n";
    ?>
    

    以上例程会输出:

    2008-01-13
    2008-01-14
    2009-01-04
    

    找出来某个周所属的月份

    <?php
    $date = new DateTime();
    $date->setISODate(2008, 14);
    echo $date->format('n');
    ?>
    

    以上例程会输出:

    3
    

    参见

    • DateTime::setDate() 设置 DateTime 对象的日期
    • DateTime::setTime() 设置 DateTime 对象的时间