DateTime :: modify()的表达式可以更改日期

时间:2011-02-03 09:37:29

标签: php datetime

我有DateTime个对象,我需要将其移至第二天X。例如,如果X是15:

  

2011-02-03⇒2011-02-15#早于15岁,留在本月

     

2011-02-15⇒2011-02-15#今天是15岁,今天待在这里

     

2011-02-20⇒2011-03-15#晚于15岁,移至下个月

我知道我可以使用DateTime::format()DateTime::setDate()的组合,但可以通过一次调用将 设为DateTime::modify()吗?

它也必须在 PHP/5.2.14 下工作。

包含“第15天”的表达式甚至不解析。

1 个答案:

答案 0 :(得分:10)

$x = 15; // day 15 of the month
$d = $date->format('d');
$m = $date->format('m');
$y = $date->format('Y');

$date->setDate($y , $m , $x); // set the wanted day for the month

//if the wanted day was before the current day, add one month
if( $d > $x ){ // is next month's one.
   $date->modify($date, '+1 month');
}