我正在尝试使用 php DateTime objects modify 函数将日期修改为当月的特定日期,即 10 日或 20 日等。
我已经尝试了以下所有方法,但都不起作用:
$d = new DateTime();
$d->modify('10th day');
$d->modify('10th');
$d->modify('10th of this month');
$d->modify('10th of the month');
我正在尝试使用 php DateTime objects modify 函数将日期修改为当月的特定日期,即 10 日或 20 日等。
我已经尝试了以下所有方法,但都不起作用:
$d = new DateTime();
$d->modify('10th day');
$d->modify('10th');
$d->modify('10th of this month');
$d->modify('10th of the month');
$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');
PS:不过,我想一个更好的使用方式
$cMonth = date('n');
$cYear = date('Y');
...
$d->setDate($cYear, $cMonth, 10);