为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 每 14 天显示一次新列表项

使用 PHP 每 14 天显示一次新列表项

PHP
汪汪一只猫 2022-08-05 16:50:14
我正在使用以下代码,每 14 天显示一个新的列表项。开始日期为2020-02-01,结束日期为2020-12-31。开始日期不会显示任何列表项。在 2020-02-15 上,将显示第一个列表项。在 2020-02-29 上,将显示第二个列表项。这将每 14 天持续一次,直到达到结束日期。列表项来自WordPress循环,因此我不确定是否可以使用此代码合并到wp Query中,date_query或者应该保持独立并在查询后运行。<?php// Set the default timezone.date_default_timezone_set('America/Edmonton');$startDate = new DateTime('2020-02-01 00:00:00');$endDate = new DateTime('2020-12-31 00:00:00');$dateRange = new DatePeriod($startDate, new DateInterval('P14D'), $endDate);$b = new DateTime('-14 days');?><ul><?php foreach($dateRange as $date): ?>    <?php $diff = $date->diff($b); ?>    <?php if($diff->days <= 14): ?>        <li>            <?php echo $date->format('Y-m-d'); ?>        </li>    <?php endif; ?><?php endforeach; ?></ul>电流输出2019-12-292020-01-12输出不符合预期,我需要一些帮助来修复我的代码,因为我是PHP新手。非常感谢任何和所有帮助。
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

怎么样:


// We start at your given start date

$startDate = new DateTime("2020-02-01");

// We define a date when to stop additional list items

$endDate = new DateTime("2020-12-31");

// We define the current time

$now = new DateTime();


// Modify date on the fly, by given time frame (readability)

// Ensures to display dates only between start+14day && end

while ($startDate->modify("+14 days") < $now && $startDate < $endDate) {

    echo '<li>' . $startDate->format("Y-m-d") . '</li>';

}


查看完整回答
反对 回复 2022-08-05
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

我已经测试了这个,它的工作原理:


<?php

// Set the default timezone.

date_default_timezone_set('America/Edmonton');


$startDate = new DateTime('2020-02-01 00:00:00');

$startDate->modify('+14 days');

$endDate = new DateTime('2020-12-31 00:00:00');

$dateRange = new DatePeriod($startDate, new DateInterval('P14D'), $endDate);

?>

<ul>

<?php foreach($dateRange as $date) { ?>

        <li>

            <?php echo $date->format('Y-m-d'); ?>

        </li>

<?php } ?>

</ul>

我已经添加了更改时间戳的内容(将时间戳添加2周)。由于每 2 周返回一次时间戳,因此我删除了 if 语句。您可以在此处了解更多信息。$endDate->modify('+14 days');$dateRangedate->modify()


查看完整回答
反对 回复 2022-08-05
  • 2 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信