我有一个php事件的日历,它查询数据库以获取日期.
我使用以下方式显示事件日期:
$event['date']
Run Code Online (Sandbox Code Playgroud)
这个显示格式为:
2013-07-31
例如.
现在,我需要做的是检查此日期是否是当前日期的过去日期.
我怎样才能做到这一点?
Ama*_*ali 68
您可以将日期与PHP的DateTime
类进行比较:
$date = new DateTime($event['date']);
$now = new DateTime();
if($date < $now) {
echo 'date is in the past';
}
Run Code Online (Sandbox Code Playgroud)
注意:使用DateTime
class是首选,strtotime()
因为后者仅适用于2038年之前的日期.阅读有关Year_2038_problem的更多信息.
new*_*rey 14
你可以使用strtotime()
和time()
:
if (strtotime($event['date']) < time()) {
// past date
}
Run Code Online (Sandbox Code Playgroud)
@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';
}
Run Code Online (Sandbox Code Playgroud)
输出将是
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
Run Code Online (Sandbox Code Playgroud)
解决方案
$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';
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49421 次 |
最近记录: |