搜尋

首頁  >  問答  >  主體

如何在php中檢查兩個日期變數之間的時間?

<p>我有3個變量,分別是3個數字(day,year,month)。 它們合在一起成為一個日期類型的變數。 另外,我還有一個日期變量,表示當前日期。 </p> <p>我該如何檢查第一個日期是否在當前日期之前13年或更早? 以下是我的程式碼:</p> <pre class="brush:php;toolbar:false;">$usersday = (int)$_POST['day']; $usersyear = (int)$_POST['year']; $usersmonth = (int)$_POST['month']; $takedate = date_create("$usersyear-$usersmonth-$usersday"); $date = date_format($takedate, 'd-m-Y'); $currentDate = date('Y-m-d');</pre> <p><br /></p>
P粉831310404P粉831310404495 天前600

全部回覆(1)我來回復

  • P粉787934476

    P粉7879344762023-08-17 00:27:41

    date_*()函數和date()是兩個不同的日期庫API的一部分,令人困惑的是。物件導向版本的date_*()函數在一定程度上澄清了這一點,同時也是一個更強大的函式庫。例如:

    $usersyear = 2001;
    $usersmonth = 1;
    $usersday = 1;
    
    $takedate = new DateTime("$usersyear-$usersmonth-$usersday");
    $today    = new DateTime('today');
    $diff     = $today->diff($takedate);
    
    var_dump($diff, $diff->y);
    

    輸出:

    object(DateInterval)#3 (10) {
      ["y"]=>
      int(22)
      ["m"]=>
      int(7)
      ["d"]=>
      int(15)
      ["h"]=>
      int(0)
      ["i"]=>
      int(0)
      ["s"]=>
      int(0)
      ["f"]=>
      float(0)
      ["invert"]=>
      int(1)
      ["days"]=>
      int(8262)
      ["from_string"]=>
      bool(false)
    }
    int(22)

    參考:https://www.php.net/manual/en/book.datetime.php

    #

    回覆
    0
  • 取消回覆