从给定日期获取一周前 PHP

我有一个每月帐单表,以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格式?


翻阅古今
浏览 129回答 3
3回答

撒科打诨

尝试这个:private function getWeekAgoDate($dueDate){  $weekAgo = date('Y-m-d', strtotime('-7 days', strtotime($dueDate)));  return $weekAgo;}

呼啦一阵风

您还可以使用修改功能。$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

慕沐林林

使用 strtotime,您可以简单地从日期中添加/减去天、周等。例子:function getWeekAgoDate($dueDate){   return date("Y-m-d", strtotime($dueDate . "-1 week"));}
打开App,查看更多内容
随时随地看视频慕课网APP