dump(date('Y-m-d', strtotime('2018-10-1 +1 day'))); dump(date('Y-m-d', strtotime('2018-10-1 +1 week'))); dump(date('Y-m-d', strtotime('2018-10-1 +1 month'))); dump(date('Y-m-d', strtotime('2018-10-1 +1 year'))); dump(date('Y-m-d', strtotime('2018-10-1 -1 day'))); dump(date('Y-m-d', strtotime('2018-10-1 -1 week'))); dump(date('Y-m-d', strtotime('2018-10-1 -1 month'))); dump(date('Y-m-d', strtotime('2018-10-1 -1 year')));
同理,把2018-10-1换成变量,就可以做很多事了!
ps 由于每个月份的天数不一样 +/- 1 month 特殊日期会有误差
//获取上一个月日期方法
public function getBeforeMonthDate($currentDate) { $currentMonthDay = date('t', strtotime($currentDate)); $currentDay = date('d', strtotime($currentDate)); $yearMonth = date('Y-m', strtotime($currentDate)); $beforeMonth = date('Y-m-d', strtotime("$yearMonth -1 month")); $beforeMonthDay = date('t', strtotime($beforeMonth)); if ($beforeMonthDay < $currentMonthDay && $beforeMonthDay < $currentDay) { $beforeDate = date("Y-m-d", strtotime("last day of -1 month", strtotime($currentDate))); } else { $beforeDate = date('Y-m-d', strtotime("$currentDate -1 month")); } return $beforeDate; }