我不知道此问题是否已经提出过。
其实我有两个约会:
$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
有一个日期值(比如 - 2014-06-12 10:20:50
)并且我设置了一个默认值
0000-00-00 00:00:00
所以$date1
不是0000-00-00 00:00:00
(可能是2014-06-12 10:20:50
)那么:
$date1 = "2014-06-12 10:20:50"; // database value
$day1 = date('d', strtotime($date1));
echo $day1; // returns 12 (which is correct)
但如果$date1
为0000-00-00 00:00:00
,那么
$day1 returns 01
WHY吗
如果它的行为是strtotime()
(不确定)。
然后告诉我如果日期到来0000-00-00 00:00:00
我该怎么办?
请帮助..
答案 0 :(得分:1)
您可以查看某些条件,如下所示:
$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;
}
答案 1 :(得分:1)
您必须在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) {
...
}
答案 2 :(得分:0)
转换后只需比较时间:
$time1 = strtotime($date1);
if($time1 < time()) {
//@TODO
}
答案 3 :(得分:0)
数据库可以轻松返回您在当天存储的日期。我不知道你使用Mysql的数据库,你可以使用date_format:
select date_format(now(), '%d') as DAY; -> 12
这在PHP中是一个简单的整数比较。