[英]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.