php - 每 2 周显示下周三 PHP
问题描述
对于电子商务商店,我们试图显示我们将订购新库存的下一个日期。我们每隔一个星期三订购一次库存。目前我有这个:
<?php
$number_of_dates = 1;
$startDate = mktime(0, 0, 0, 6, 4, 2020); // May 2, 2012
for ($i = 0; $i < $number_of_dates; $i++) {
$date = strtotime('Wednesday +' . ($i * 2) . ' weeks', $startDate);
echo date('d-m-Y', $date).PHP_EOL;
}
?>
问题是,从测试来看,它没有显示下一个日期。因此,它将继续显示从开始日期开始的第一个日期并且不会继续显示下一个日期。
解决方案
使用类族更容易处理日期DateTime()
。
我认为这可以满足您的需求。您可能需要对其进行调整以满足您的特定需求。
$today = new DateTimeImmutable('next Wednesday');
$end = $today->modify('+4 weeks');
$interval = new DateInterval('P2W');
$period = new DatePeriod($today, $interval, $end);
foreach ($period as $date) {
printf('%s%s', $date->format('Y-m-d'), PHP_EOL);
}
输出
2020-06-10
2020-06-24
推荐阅读
- javascript - jQuery UI 滑块 - 设置最大选项更改值
- javascript - Javascript所有字段未得到验证
- python - re.search 总是返回 None
- php - GD 库中的 imagesx() 不能在课堂上使用,但可以单独使用
- karate - 并行执行测试时,控制台日志和 Karate.log 文件难以阅读,因为服务调用和响应没有一起记录
- excel - 对象要求 RTE 424
- python - 执行 post API 时出现 500 错误作为响应
- android - 从 ViewModel 访问 android 资源的最佳实践是什么?
- javascript - for..in 循环和 Object.keys 不同的行为
- javascript - WebGL2 texImage2D 16-bit then readPixels 16-bit问题