簡體   English   中英

檢查日期是否過去

[英]Check if a Date is in Past

我從MySQL表中獲取值,而我的日期看起來像: DD.MM

現在,我要檢查此日期是否過去。 我嘗試了if($ende < date("dm")); 但它刪除了23.10處的01.11之類的值。

我需要刪除過去的條目。

我的代碼如下所示:

if($ende < date("d.m")) {
    $sqls = "DELETE FROM hausaufgaben WHERE Ende='$ende';";
    if(!mysqli_query($conn, $sqls)){
        echo "<p>Es gab keine älteren Hausaufgaben</p>";
    }
}

將日期拆分為兩部分,然后分別比較日期和月份

$ende = "01.11";

$ende_split = explode( '.', $ende );
$ende_tag   = $ende_split[0];
$ende_monat = $ende_split[1];

if( ($ende_tag < date('d')) && ($ende_monat <= date('m')) ){
    $sqls = "DELETE FROM hausaufgaben WHERE Ende='$ende';";

    if(!mysqli_query($conn, $sqls)){
        echo "<p>Es gab keine älteren Hausaufgaben</p>";
    }
}

monat使用<=是因為月份可以相同,但是日期可以是過去的日期。

您將需要使用Str_To_Date()函數將DD.MM格式的字符串轉換為MySQL Date格式YYYY-MM-DD )。

既然您提到過 ,將僅提供當年的數據; 我可以放心地假設年份是2018年(可以使用YEAR(CURDATE())來使它通用。

請嘗試以下查詢:

DELETE FROM hausaufgaben 
WHERE STR_TO_DATE(CONCAT(Ende, '.', YEAR(CURDATE())), 
                  '%d.%m.%Y') < CURDATE()

額外細節:

  • %d月份中的天,以數值(01到31)
  • %m月名稱(作為數字值(00到12))
  • %Y年,為4位數字

暫無
暫無

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

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