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

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

下拉列表中的 PHP 格式日期不起作用

下拉列表中的 PHP 格式日期不起作用

PHP
蕭十郎 2023-11-03 16:56:30
我有點困惑,因為我有一些代碼可以提前生成 21 天的簡單日期下拉列表。它工作正常,但是輸出沒有顯示正確的日期,而是顯示 1970 年 1 月 1 日$timestamp = strtotime('today');$output = [];for ($day = 0; $day < 21; $day++) {    $output[] = date('d M y', strtotime(sprintf('+%d days', $day), $timestamp));}echo "<select name='days'>";    foreach ($output as $day)    {        echo "<option value='".$day."'>".date('l jS \of F Y',$day)."</option>";    }echo "</select>";如果我僅回顯 $day 作為輸出值,它將以 DD/MM/YYYY 格式顯示,但我希望它顯示日名稱月年日那么使用有什么不正確的date('l jS \of F Y',$day)我確信這很愚蠢,但我檢查了日期上的所有各種帖子,但我一生都無法弄清楚這一點。
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

函數 date() 將時間(以秒為單位)作為其第二個參數。



查看完整回答
反對 回復 2023-11-03
?
守著一只汪

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>";


查看完整回答
反對 回復 2023-11-03
  • 2 回答
  • 0 關注
  • 196 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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