比较日期(“Y-m-d h:我:”);

时间:2021-11-14 21:29:13

how can I make a conditional statement like if date("Y-m-d h:i:s"); is more than 30 seconds after date("Y-m-d h:i:s");.

我如何做一个有条件的声明,如日期(“Y-m-d h: I:s”);超过30秒后(“Y-m-d h:i:s”);

I've previously used something like date("Y-m-d h:i:s"); < date("Y-m-d h:i:s"); + 30, however this doesn't seem to work.

我以前使用过类似日期(“Y-m-d h: I:s”); <日期(“y-m-d h:我:”);+ 30,但这似乎行不通。< p>

Help?

帮助吗?

4 个解决方案

#1


10  

Use strtotime() to convert them to UNIX time.

使用strtotime()将它们转换为UNIX时间。

E.g.:

例如:

if(strtotime($date2) - strtotime($date1) > 30) {
    // $date2 is more than 30 seconds after $date1
}

or

if(abs(strtotime($date2) - strtotime($date1)) > 30) {
    // $dates are more than 30 second apart
}

#2


2  

Use strtotime() to convert both dates to a unix timestamp, then add the wanted amount of seconds to the second and do an integer comparison.

使用strtotime()将两个日期转换为unix时间戳,然后将所需的秒数添加到第二个,并进行整数比较。

#3


1  

Use unixtime, instead. Just convert your date("Y-m-d h:i:s"); to date("U") or just time(). strototime() could help you with this. It shows the time in seconds since the Unix Epoch (January 1 1970 00:00:00 GMT). Then this method $unixtime + 30 will work fine as well ;)

使用unixtime,相反。只是转换你的日期(“Y-m-d h:i:s”);到日期(“U”)或只是时间()。strototime()可以帮助您解决这个问题。它显示了自Unix时代(1970年1月1日,格林尼治标准时间1月1日)以来的时间。然后这个方法$unixtime + 30也可以正常工作;

#4


1  

It looks like you are trying to compare database date fields (like mysql DATETIME). Use the database systems date and time functions to compare date values (like DATE_ADD() or + and with simple < or > in MySQL).

看起来您正在尝试比较数据库日期字段(如mysql DATETIME)。使用数据库系统的日期和时间函数来比较日期值(比如DATE_ADD()或+,并使用简单的 <或> 在MySQL中)。

#1


10  

Use strtotime() to convert them to UNIX time.

使用strtotime()将它们转换为UNIX时间。

E.g.:

例如:

if(strtotime($date2) - strtotime($date1) > 30) {
    // $date2 is more than 30 seconds after $date1
}

or

if(abs(strtotime($date2) - strtotime($date1)) > 30) {
    // $dates are more than 30 second apart
}

#2


2  

Use strtotime() to convert both dates to a unix timestamp, then add the wanted amount of seconds to the second and do an integer comparison.

使用strtotime()将两个日期转换为unix时间戳,然后将所需的秒数添加到第二个,并进行整数比较。

#3


1  

Use unixtime, instead. Just convert your date("Y-m-d h:i:s"); to date("U") or just time(). strototime() could help you with this. It shows the time in seconds since the Unix Epoch (January 1 1970 00:00:00 GMT). Then this method $unixtime + 30 will work fine as well ;)

使用unixtime,相反。只是转换你的日期(“Y-m-d h:i:s”);到日期(“U”)或只是时间()。strototime()可以帮助您解决这个问题。它显示了自Unix时代(1970年1月1日,格林尼治标准时间1月1日)以来的时间。然后这个方法$unixtime + 30也可以正常工作;

#4


1  

It looks like you are trying to compare database date fields (like mysql DATETIME). Use the database systems date and time functions to compare date values (like DATE_ADD() or + and with simple < or > in MySQL).

看起来您正在尝试比较数据库日期字段(如mysql DATETIME)。使用数据库系统的日期和时间函数来比较日期值(比如DATE_ADD()或+,并使用简单的 <或> 在MySQL中)。