嗨,我正尝试使用php从一年中的第一天减去1天和1年
代码
var_dump(date('Y-01-01', strtotime('-1 day')));
var_dump(date('Y-01-01', strtotime('-1 year')));
结果
string(10) "2019-01-01"
string(10) "2018-01-01"
我希望第一个结果是2018-12-31
而不是2019-01-01
,为什么只有-1 year
可以正常工作?请帮忙 。预先感谢。
答案 0 :(得分:3)
实际上不是从年初开始减去一天或一年,而是从当前日期减去它们。另外,由于您使用Y-01-01
格式进行输出,因此两个日期的月份和日期始终始终为1。您需要首先生成一年的第一天,然后从中减去并使用Y-m-d
格式输出:
$foy = strtotime(date('Y-01-01'));
var_dump(date('Y-m-d', strtotime('-1 day', $foy)));
var_dump(date('Y-m-d', strtotime('-1 year', $foy)));
输出:
string(10) "2018-12-31"
string(10) "2018-01-01"