亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 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 關注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號