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