文字

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setDate -- date_date_setSets the date

说明

面向对象风格

public DateTime DateTime::setDate ( int $year , int $month , int $day )

过程化风格

DateTime date_date_set ( DateTime $object , int $year , int $month , int $day )

Resets the current date of the DateTime object to a different date.

参数

object

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

year

Year of the date.

month

Month of the date.

day

Day of the date.

返回值

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

更新日志

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

范例

Example #1 DateTime::setDate() example

面向对象风格

<?php
$date 
= new  DateTime ();
$date -> setDate ( 2001 2 3 );
echo 
$date -> format ( 'Y-m-d' );
?>

过程化风格

<?php
$date 
date_create ();
date_date_set ( $date 2001 2 3 );
echo 
date_format ( $date 'Y-m-d' );
?>

以上例程会输出:

2001-02-03

Example #2 Values exceeding ranges are added to their parent values

<?php
$date 
= new  DateTime ();

$date -> setDate ( 2001 2 28 );
echo 
$date -> format ( 'Y-m-d' ) .  "\n" ;

$date -> setDate ( 2001 2 29 );
echo 
$date -> format ( 'Y-m-d' ) .  "\n" ;

$date -> setDate ( 2001 14 3 );
echo 
$date -> format ( 'Y-m-d' ) .  "\n" ;
?>

以上例程会输出:

2001-02-28
2001-03-01
2002-02-03

参见

  • DateTime::setISODate() - Sets the ISO date
  • DateTime::setTime() - Sets the time

用户评论:

[#1] remy215 at laposte dot net [2012-01-11 22:59:06]

Be warned, DateTime::setDate() does not check for invalid input.

Illustration:
<?php
$dt 
= new DateTime();
$dt->setDate(20121131); // returns DateTime object and not false although this date does not exist
echo $dt->format('Y-m-d'); // output: 2012-12-01
?>


No error was generated on entering a non existing date, php silently changed it.

上一篇: 下一篇: