use*_*385 0 php date date-comparison
我正在创建一个函数来检查哪个日期在一个充满日期的数据库表中小于当前日期.和过去一样.
我有3个日期来测试函数,以及它们后面的输出:
上个月的
日期:28-04-2015 16:32:00
日期尚未到来:11-06-2015 13:12:00
日期:上一周:04-05-2015 09:45:00
$dateNow = date('d-m-Y H:i:s'); //Current
$deadlineDate = "28-04-2015 16:33:18";
if($deadlineDate < $dateNow){ //If date from last month is smaller then the current date
echo '<tr class="overdue">'; //Overdue class gives that tr an red background color to mark it
echo '<td>'.$deadlineDate.' is smaller then '.$dateNow.'</td>';
}else{
echo '<tr>';
echo '<td>'.$deadlineDate.' is bigger dan '.$dateNow.'</td>';
}
</tr>
Run Code Online (Sandbox Code Playgroud)
输出:
28-04-2015 16:32:00 返回更大
11-06-2015 13:12:00 返回较小
04-05-2015 09:45:00 返回较小
谁能告诉我出了什么问题?
你的"约会"真的是字符串.比较它们时,它是按字母顺序排列的.您需要将这些日期转换为实际日期才能生效:
$dateNow = new DateTime();
$deadlineDate = DateTime::createFromFormat("d-m-Y H:i:s", "28-04-2015 16:33:18");
if($deadlineDate < $dateNow){ //If date from last month is smaller then the current date
echo '<tr class="overdue">'; //Overdue class gives that tr an red background color to mark it
echo '<td>'.$deadlineDate.' is smaller then '.$dateNow.'</td>';
}else{
echo '<tr>';
echo '<td>'.$deadlineDate.' is bigger dan '.$dateNow.'</td>';
}
Run Code Online (Sandbox Code Playgroud)
将它们转换为YYYY-MM-DD格式也可以.
| 归档时间: |
|
| 查看次数: |
729 次 |
| 最近记录: |