2 回答

TA貢獻1872條經(jīng)驗 獲得超4個贊
如果您查看PHP:date文檔,您會發(fā)現(xiàn)第二個參數(shù)需要一個整數(shù),而不是字符串。
將您的代碼更改為以下內(nèi)容:
<?php
$output = [];
for ($day = 0; $day < 21; $day++) {
? ? $output[] = strtotime(sprintf('+%d days', $day));
}
echo "<select name='days'>";
foreach ($output as $day)
{
? ? echo "<option value='".$day."'>".date('l jS \of F Y', $day)."</option>";
}
echo "</select>";
您將在這里看到我們不是用字符串填充輸出數(shù)組,而是用 21 個時間戳填充它。
一旦開始循環(huán)輸出數(shù)組,將時間戳傳遞給日期函數(shù)的第二個參數(shù)將產(chǎn)生您期望的輸出。
我將每個選項的值設(shè)置為該時間戳,因為如果您需要處理任何 POST 數(shù)據(jù),它會讓一切變得更容易處理。但您可以根據(jù)需要自由調(diào)整格式。
編輯:
僅供娛樂,以下是如何以更面向?qū)ο蟮娘L格來完成此操作。我覺得這種方式更簡潔,但是否采用這種方法取決于您。
<?php
$today = new DateTime();
echo "<select name='days'>";
for ($day = 0; $day < 21; $day++)
{
? ? echo "<option value='".$today->getTimestamp()."'>".$today->format('l jS \of F Y')."</option>";
? ? $today->add(new DateInterval("P1D"));
}
echo "</select>";
- 2 回答
- 0 關(guān)注
- 190 瀏覽
添加回答
舉報