【发布时间】:2021-05-09 14:35:59
【问题描述】:
想提醒生效日期,直到满足条件。
代码:-
$effective_date = '2020/09/03';
$last_date = '2020/12/03';
$last_date = new DateTime($last_date);
$effective_date = new DateTime($effective_date);
do{
$edate = $effective_date->format('Y/m/d');
echo "<script>alert('".$edate."');</script>";
$nxtdate = date('Y-m-d', strtotime("+1 months", strtotime($edate)));
$effective_date = new DateTime($nxtdate);
} while($effective_date > $last_date);
它只提醒一次,但我的期望是应该提醒3次
【问题讨论】:
-
$effective_date > $last_date从一开始就是假的,因此没有迭代。可能while($effective_date < $last_date)是您想要的。是“当”而不是“直到”。 -
另外,不需要 strtotime() 和 date()。您可以直接操作您的 DateTime 对象
标签: php loops datetime while-loop do-while