我正在尝试使用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');
答案 0 :(得分:2)
$date = new DateTime();
$date->setDate(2001, 2, 10);
答案 1 :(得分:1)
假设您不知道年份和月份(如果您这样做,请使用DateTime::setDate()
),一种方法是这样的:
$day = 10; // 10th of the month
$dt = new DateTime('first day of this month');
$dt->modify('+' . ($day - 1) . ' days');
我感觉还有一种方法可以通过构造函数严格执行,但是和你一样,我无法找出魔法字符串。奇怪的是“月的第一天”有效,但“月的第十天”没有。
修改:显然it's impossible to do this through the constructor。就连拉斯穆斯也建议这样做。
答案 2 :(得分:0)
试试这个:
$d = new DateTime('first day of this month');
$d->modify('+9 day');
PS:尽管如此,我想更好的方法是使用
$cMonth = date('n');
$cYear = date('Y');
...
$d->setDate($cYear, $cMonth, 10);