我有一个每月帐单表,以Y-m-d格式存储客户需要支付帐单的位置,我需要在此截止日期前一周发送电子邮件通知。例如:public function cronSendNotif($transaction){ $dueDate = $transaction->getDueDate(); // 2019-08-03 $weekAgo = $this->getWeekAgoDate($dueDate); // 2019-07-27 $this->sendEmailNotification($transaction->getId(),$weekAgo);}private function getWeekAgoDate($dueDate){ // how ??}Y-m-d如果我有这个给定日期的格式,我怎样才能获得一周前的日期Y-m-d格式?
3 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
尝试这个:
private function getWeekAgoDate($dueDate){
$weekAgo = date('Y-m-d', strtotime('-7 days', strtotime($dueDate)));
return $weekAgo;
}
呼啦一阵风
TA贡献1802条经验 获得超6个赞
您还可以使用修改功能。
$weekAgo = getWeekAgoDate($dueDate);
echo $weekAgo->format('Y-m-d H:i:s');
function getWeekAgoDate(DateTime $dueDate){
return $dueDate->modify("- 7 days");
}
文档:php.net/manual/en/datetime.modify.php
慕沐林林
TA贡献2016条经验 获得超9个赞
使用 strtotime,您可以简单地从日期中添加/减去天、周等。例子:
function getWeekAgoDate($dueDate){
return date("Y-m-d", strtotime($dueDate . "-1 week"));
}
- 3 回答
- 0 关注
- 128 浏览
添加回答
举报
0/150
提交
取消