2 回答

TA貢獻1872條經驗 獲得超4個贊
如果您查看PHP:date文檔,您會發現第二個參數需要一個整數,而不是字符串。
將您的代碼更改為以下內容:
<?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>";
您將在這里看到我們不是用字符串填充輸出數組,而是用 21 個時間戳填充它。
一旦開始循環輸出數組,將時間戳傳遞給日期函數的第二個參數將產生您期望的輸出。
我將每個選項的值設置為該時間戳,因為如果您需要處理任何 POST 數據,它會讓一切變得更容易處理。但您可以根據需要自由調整格式。
編輯:
僅供娛樂,以下是如何以更面向對象的風格來完成此操作。我覺得這種方式更簡潔,但是否采用這種方法取決于您。
<?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 關注
- 196 瀏覽
添加回答
舉報