簡體   English   中英

date(“ F”,strtotime(day-month-year))打印出一年中第二個月的錯誤值

[英]date(“F”, strtotime(day-month-year)) printing out the wrong value for the second month of the year

出於好奇,有人知道為什么

echo date("F", strToTime("$day-02-$year"));

會打印出三月,本來我以為這是一個錯誤,但是

echo date("F", strToTime("$day-01-$year"));

打印一月和

echo date("F", strToTime("$day-03-$year"));

打印出三月,所以我不確定這里到底發生了什么???

有任何想法嗎

您今天運行此腳本,因此$day=30;

因此,如果您嘗試獲取2月30日,則返回3月2日-leap年3月1日。 顯然是因為二月沒有足夠的時間...

$day = 30;
$year = 2014;

echo date("r", strToTime("$day-02-$year"));

輸出:

Sun, 02 Mar 2014 00:00:00 +0100

這不是一個錯誤,這是一個功能。

我的問題是將日期默認設置為“ j”,如果沒有設置日期,則我將默認設置設為01,現在可以使用了,

我有一個日歷,每個月都要用簡單的按鈕進行操作,而條件語句中從未設置過日期,所以我有一個問題,即如果未設置日期,則默認值是小寫的j,一旦更改,它就會響應正確的名稱,因此此問題的答案是確保如果不存在某天(例如您一個月一個月到另一個月),則將默認日期設置為1

<?php 

        if (isSet($_GET['day'])) {
            $day = $_GET['day'];
        } else {
            $day = date("01");
        }

        if (isSet($_GET['month'])) {
            $month = $_GET['month'];
        } else {
            $month = date("n");
        }

        if (isSet($_GET['year'])){
            $year = $_GET['year'];
        } else {
            $year = date("Y");
        }

        //calendar variable
        $currentTimeStamp = strToTime("$day-$month-$year");         
        //get current month name
        $monthName = date("F", $currentTimeStamp);          
        //get how many days are in the current month
        $numDays = date("t", $currentTimeStamp);            
        //counter for calendar cells in loop
        $counter = 0;       
    ?>

像這樣!

暫無
暫無

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

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