比较 IF 语句中的时间 PHP
Comparing Time in IF statement PHP
我正在 php 中开发一个模块,我应该在其中管理时差并在特定时差下进行。
我正在从包含时间的数据库 ($end_date) 中获取一个值。
$end_date = $result['end_date'];
从
获取服务器时间
$date = $this->GetServerTime();
获取这两者之间的时间差
$diffrence = date("Y-m-d H:i:s",strtotime("$date - $end_date"));
现在,我需要通过 if 语句检查时差是否小于 15 秒。我的方法:
$to_time = strtotime("0000-00-00 00:00:15");
if ($difference < $to_time)
{
echo "here";
}
但我认为我做的事情不对,我还应该如何比较呢?
我做了很多研究,但无济于事,我们将不胜感激。
一种方法是使用类似这样的东西
$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
$difference = $to_time - $from_time;
if($difference > 15){
<CODE>
}
对于那些使用与上面不同的日期/时间格式的人,可以使用类似下面的代码,您可以使用 date() 函数的参数来指定您的日期格式。
$dateFormat = "d/m/Y H:i:s";
$tmp_to_time = date_create_from_format($dateFormat,"25/08/2015 10:45:12");
$tmp_from_time = date_create_from_format($dateFormat,"25/08/2015 10:34:15");
$to_time = strtotime(date_format($tmp_to_time , $dateFormat))
$from_time = strtotime(date_format($tmp_from_time , $dateFormat))
$difference = $to_time - $from_time;
if($difference > 15){
<CODE>
}
代码的灵感和主要部分来自here
每当我必须做类似的事情时,我只是用时间戳(以秒为单位)进行计算。
$end_date = strtotime($result['end_date']); # timestamp in s
$date = strtotime($this->GetServerTime()); # timestamp in s
if ($date - $enddate > 15) {
echo "Here";
}
对于分钟和小时,您可以轻松地将这些时间乘以 60。
if ($date - $enddate > (15*60)) { # 15 minutes
echo "Here";
}
我不完全确定这是否适用于夏令时,但对于大多数用例来说应该足够了。
哦,顺便说一句:如果您必须与当前时间进行比较,这真的很有帮助,因为 time()
returns 以秒为单位的时间戳。
这是可以做到的:
$end_date = strtotime($result['end_date']);
$date = strtotime($this->GetServerTime());
$difference = $date-$end_date;
$sec = strtotime(15);
if ($difference < $sec){
echo "here";
}
我正在 php 中开发一个模块,我应该在其中管理时差并在特定时差下进行。 我正在从包含时间的数据库 ($end_date) 中获取一个值。
$end_date = $result['end_date'];
从
获取服务器时间$date = $this->GetServerTime();
获取这两者之间的时间差
$diffrence = date("Y-m-d H:i:s",strtotime("$date - $end_date"));
现在,我需要通过 if 语句检查时差是否小于 15 秒。我的方法:
$to_time = strtotime("0000-00-00 00:00:15");
if ($difference < $to_time)
{
echo "here";
}
但我认为我做的事情不对,我还应该如何比较呢? 我做了很多研究,但无济于事,我们将不胜感激。
一种方法是使用类似这样的东西
$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
$difference = $to_time - $from_time;
if($difference > 15){
<CODE>
}
对于那些使用与上面不同的日期/时间格式的人,可以使用类似下面的代码,您可以使用 date() 函数的参数来指定您的日期格式。
$dateFormat = "d/m/Y H:i:s";
$tmp_to_time = date_create_from_format($dateFormat,"25/08/2015 10:45:12");
$tmp_from_time = date_create_from_format($dateFormat,"25/08/2015 10:34:15");
$to_time = strtotime(date_format($tmp_to_time , $dateFormat))
$from_time = strtotime(date_format($tmp_from_time , $dateFormat))
$difference = $to_time - $from_time;
if($difference > 15){
<CODE>
}
代码的灵感和主要部分来自here
每当我必须做类似的事情时,我只是用时间戳(以秒为单位)进行计算。
$end_date = strtotime($result['end_date']); # timestamp in s
$date = strtotime($this->GetServerTime()); # timestamp in s
if ($date - $enddate > 15) {
echo "Here";
}
对于分钟和小时,您可以轻松地将这些时间乘以 60。
if ($date - $enddate > (15*60)) { # 15 minutes
echo "Here";
}
我不完全确定这是否适用于夏令时,但对于大多数用例来说应该足够了。
哦,顺便说一句:如果您必须与当前时间进行比较,这真的很有帮助,因为 time()
returns 以秒为单位的时间戳。
这是可以做到的:
$end_date = strtotime($result['end_date']);
$date = strtotime($this->GetServerTime());
$difference = $date-$end_date;
$sec = strtotime(15);
if ($difference < $sec){
echo "here";
}