簡體   English   中英

PHP Select 選項從當前月份返回 2 個月前

[英]PHP Select option return 2 months ago from current month

嗨,我想知道。

如何從當前月份獲得兩個月分配 1-15 和 16 到 31

我需要 output 是這樣的:

<option value="2014-09-15">September 15, 2014</option>
<option value="2014-09-30">September 30, 2014</option>
<option value="2014-10-15">October 15, 2014</option>
<option value="2014-10-30">October 30, 2014</option>

我有示例代碼,但它的 output 12 個月

<?php

for ($i = 0; $i <= 11; ++$i) 
{
$time = strtotime(sprintf('+%d months', $i));
$value = date('m', $time);
$label = date('F', $time);

//if month is set stay on that month

if($month==$value)
{ printf('<option value="%s" selected="selected">%s</option>' , $value, $label);
}
else
{printf('<option value="%s">%s</option>', $value, $label);}
}

?>

例如:

$currentMonth = date("n");
for($i=1;$i<3;$i++) {
    $monthNum = $currentMonth - $i;
    if($monthNum<1)
        $monthNum = 12 - $monthNum;
    $monthName = date("F", mktime(0, 0, 0, $monthNum, 10));
    //here use $monthNum and $monthName for output
    print "<option>......</option>";
}

使用 function 日期,更簡單,省去你的循環...

http://de2.php.net/manual/en/function.date.php

先說一些理論:

$currentMonth = date("t", time());

這將根據時間參數中給出的月份返回 31、30 或 28/29。 time() 返回一個沒有任何參數的 unix-timestamp,只是“現在”,所以它是當前月份。

如果我們希望從下個月開始的天數再次執行相同的操作,只需在 time() 中添加秒數,就足以到達下個月……所以 32 天無論如何都會帶你到下個月。 .

旁注:1 小時有 3600 秒 * 24 = 1 天有 86400。

$nextMonth = date("t", time() + (86400 * 32)); //+32 days will guarantee next month

現在我向您展示整個解決方案,這幾乎意味着您的整個 output 可以像這樣生成:

$timeNow = time();
$timeNextMonth = $timeNow + (86400 * 32); //+ 32 days

echo '
    <select name="date">
        <option value="' . date("Y-m-15", $timeNow) . '">' . date("F 15, Y", $timeNow) . '</option>
        <option value="' . date("Y-m-t", $timeNow) . '">' . date("F t, Y", $timeNow) . '</option>
        <option value="' . date("Y-m-15", $timeNextMonth) . '">' . date("F 15, Y", $timeNextMonth) . '</option>
        <option value="' . date("Y-m-t", $timeNextMonth) . '">' . date("F t, Y", $timeNextMonth) . '</option>
    </select>
';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM