php-如何检查给定两个日期的日值?

php-如何检查给定两个日期的日值?,php,date,datetime,strtotime,Php,Date,Datetime,Strtotime,我不知道以前是否已经问过这个问题 实际上我有两个约会: $date1 = $DATABASE_VALUE; $day1 = date('d', strtotime($date1)); // $date1 is my database value $date2 = date('Y-m-d H:m:s'); $day2 = date('d', strtotime($date2)); // $date2 current date 我需要检查一下: if($day1 <= $day2) {

我不知道以前是否已经问过这个问题

实际上我有两个约会:

$date1 = $DATABASE_VALUE;

$day1 = date('d', strtotime($date1)); // $date1 is my database value

$date2 = date('Y-m-d H:m:s');

$day2 = date('d', strtotime($date2)); // $date2 current date
我需要检查一下:

if($day1 <= $day2) {
   ...
}
因此,当
$date1
不是
0000-00-00 00:00:00
(可能是
2014-06-12 10:20:50
)时,则:

但是如果
$date1
0000-00-00 00:00:00
,那么

$day1 returns 01
为什么?

如果是
strotime()
的行为(对此不确定)

然后告诉我如果日期到了,我该怎么办


请帮助..

只需在转换后比较时间:

$time1 = strtotime($date1);
if($time1 < time()) {
    //@TODO
}
$time1=strotime($date1);
如果($time1
您可以检查某些条件,如下所示:

$date1 = $DATABASE_VALUE;

if('0000-00-00 00:00:00' != $date1) {
    $day1 = date('d', strtotime($date1)); // $date1 is my database value
} else {
    $day1 = 0;
}

$date2 = date('Y-m-d H:m:s');

$day2 = date('d', strtotime($date2)); // $date2 current date
更新:

if(!empty(strtotime($date1))) {
    $day1 = date('d', strtotime($date1)); // $date1 is my database value
} else {
    $day1 = 0;
}

您必须在
if
语句中添加额外的条件,以检查
$date1
的时间戳是否不同于
0
false
)。 不知怎的,是这样的:

$date1 = $DATABASE_VALUE;
$day1 = date('d', $t1 = strtotime($date1)); // $date1 is my database value
$date2 = date('Y-m-d H:m:s');
$day2 = date('d', strtotime($date2)); // $date2 current date

if($t1 && $day1 <= $day2) {
    ...
}
$date1=$DATABASE\u值;
$day1=date($d',$t1=strottime($date1));//$date1是我的数据库值
$date2=日期('Y-m-d H:m:s');
$day2=日期('d',标准时间($date2));//$日期2当前日期

如果($t1&&$day1数据库可以很容易地返回您存储的日期,只返回当天的日期。我不知道您使用Mysql的哪个数据库可以使用date\u格式:

select date_format(now(), '%d') as DAY; -> 12

这在PHP中是一个简单的整数比较。

我只想要
day
值不完整
date
time
。是的,你是对的。我以前做过类似的事情,但我不想通过
if('0000-00-00-00 00 00:00'!=$date1){
。我添加了一些,所以你可以检查相同的:)勾选@hindstrest answer。你正在做同样的事情。但是你正在做一些额外的工作。顺便说一句,你的答案也在起作用。谢谢第一,date('d',strotime(…):只给你一天(1…31)。所以你在比较12对1,不管是月还是年。接下来,strotime指的是unix时间戳,基于1970年1月1日。那么当你这样做的时候:strotime('0000-00-00 00:00:00'),意思是:1970-01-01,这就是为什么你用“01”代替“00”(你要求一天,第0天不存在!)。你可以用它代替。
$date1 = $DATABASE_VALUE;
$day1 = date('d', $t1 = strtotime($date1)); // $date1 is my database value
$date2 = date('Y-m-d H:m:s');
$day2 = date('d', strtotime($date2)); // $date2 current date

if($t1 && $day1 <= $day2) {
    ...
}
select date_format(now(), '%d') as DAY; -> 12