我正试图使用php DateTime对象修改功能将日期修改为月中的特定日期,即10日或20日等。
我已经尝试了以下所有方法,但都不起作用:
$d = new DateTime();
$d->modify('10th day');
$d->modify('10th');
$d->modify('10th of this month');
$d->modify('10th of the month');
您想要使用DateTime::setDate
$date = new DateTime();
$date->setDate(2001, 2, 10);
假设您不知道年份和月份(如果您知道,请使用DateTime::setDate()
),那么有一种方法可以做到这一点:
$day = 10; // 10th of the month
$dt = new DateTime('first day of this month');
$dt->modify('+' . ($day - 1) . ' days');
我有一种感觉,也有一种方法可以严格通过构造函数来实现,但和你一样,我无法理解魔术串。奇怪的是,"月初一"有效,但"月初十"无效。
编辑:显然,通过构造函数是不可能做到这一点的。就连拉斯姆斯也建议这样做。
试试这个:
$d = new DateTime('first day of this month');
$d->modify('+9 day');
附言:尽管如此,我想使用的更好方法
$cMonth = date('n');
$cYear = date('Y');
...
$d->setDate($cYear, $cMonth, 10);