我有一个 PHP 事件日历,它通过查询数据库来获取日期。
我使用以下代码显示事件日期:
$event['date']
并且显示的格式为:
2013-07-31
,例如。
现在,我需要做的是检查这个日期是否是过去的日期。
我该如何做呢?
我有一个 PHP 事件日历,它通过查询数据库来获取日期。
我使用以下代码显示事件日期:
$event['date']
并且显示的格式为:
2013-07-31
,例如。
现在,我需要做的是检查这个日期是否是过去的日期。
我该如何做呢?
@Satch3000 您已将错误的答案(@Amal Murali)作为正确解决方案接受
请查看输出结果,在此我输入了今天的日期,但它返回的是以前的日期。
<?php
/* Enter today date */
$date = new DateTime("09/14/2017");
$now = new DateTime();
print_r($date);
print_r($now);
if($date < $now) {
echo 'date is in the past';
}
结果将会是:
DateTime Object
(
[date] => 2017-09-14 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC
)
DateTime Object
(
[date] => 2017-09-14 07:12:52.000000
[timezone_type] => 3
[timezone] => UTC
)
date is in the past
解决方案
$Date1 = strtotime(date('Y-m-d', strtotime('2017-09-15') ) ).' ';
$Date2 = strtotime(date('Y-m-d'));
if($Date1 < $Date2) {
echo 'date is in the past';
}
<?php
if(date('Y-m-d') == '2023-09-30'){
die('in');
}
?>
$date = DateTime::createFromFormat('Y-m-d', '2013-07-31');
。 OP的示例是ISO8601格式,因此DateTime类有很大可能每次都“正确地解析”,但是对于不同的DateTime格式,为了确保转换过程中没有隐藏的错误,最好指定你要实例化的日期格式。 - Wes$event['date']
是今天的日期(没有时间),这将被认为是“过去时”。要比较没有时间的日期,您可以执行$now = new DateTime(date('Y-m-d'));
。 - But those new buttons though..