Php 如果日期时间差超过十六进制数

Php 如果日期时间差超过十六进制数,php,Php,基本上,我想利用现在两个日期之间的差异和这个人预订的任何东西。我需要使用if语句来检查差异是否在24小时/1天之间 如何在if语句中使用datetime? 像 如果($interval>24小时){ allow}我的问题是如何用php编写24小时的代码?我知道这听起来很傻 $now = new DateTime(); $future_date = new DateTime($date); $interval = $future_date->diff($now); echo $inter

基本上,我想利用现在两个日期之间的差异和这个人预订的任何东西。我需要使用if语句来检查差异是否在24小时/1天之间

如何在if语句中使用datetime? 像

如果($interval>24小时){ allow}我的问题是如何用php编写24小时的代码?我知道这听起来很傻

$now = new DateTime();
$future_date = new DateTime($date);

$interval = $future_date->diff($now);

echo $interval->format("%d days, %h hours, %i minutes, %s seconds");
如果您还希望以另一种方式添加差异,请添加:

$now_ts = $now->getTime();
$future_date_ts = $future_date->getTime();
if ($future_date_ts - $now > 60 * 60 * 24) {
    // more than 24 hours before $future_date
}

这为您提供了一个48小时的时间范围,大约是
$future\u date

您可以使用UNIX时间戳(当前时间以UNIX纪元(1970年1月1日00:00 GMT)以来的秒数度量)

time();将返回当前Unix时间戳,您可以使用strotime()将未来的_日期转换为时间戳

因此,您可以使用以下公式以秒为单位计算差值:

$now - $future_date_ts > 60 * 60 * 24 // more than 24 hours after $future_date
知道一天就是24小时,也就是24*60分钟,也就是24*60*60秒

$diff_secs = strtotime($future_date) - time();
或者您可以使用小时数的差异作为比较:

$diff_days = (strtotime($future_date) - time())/(24*60*60);
DateTime->getTime()
将为纪元之前的日期返回负值。在64位系统上,您可以获得所需的所有范围。
$diff_hours = (strtotime($future_date) - time())/(60*60);
if($diff_hours > 24) {
    //do something if its more than 24 hours away
 }