Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算从时间请求开始的2小时(以秒为单位)_Php - Fatal编程技术网

Php 如何计算从时间请求开始的2小时(以秒为单位)

Php 如何计算从时间请求开始的2小时(以秒为单位),php,Php,我的服务器时间是GMT,所以我将其转换为亚洲/吉隆坡时间。我需要计算当前时间和发出时间请求之间的时间差。发出请求的时间存储在数据库中,并在$reset\u req变量中检索 $reset_req="2015-06-30 11:30:23"; $timezone_offset = +8; // us central time (gmt-6) for me if(isset($reset_req)){ $request_date2 = strtotime($reset_req)+$tim

我的服务器时间是GMT,所以我将其转换为亚洲/吉隆坡时间。我需要计算当前时间和发出时间请求之间的时间差。发出请求的时间存储在数据库中,并在
$reset\u req
变量中检索

$reset_req="2015-06-30 11:30:23";   

$timezone_offset = +8; // us central time (gmt-6) for me

if(isset($reset_req)){
 $request_date2 = strtotime($reset_req)+$timezone_offset*60*60;
}
echo "current time= ".strtotime(time());
echo"<br/>";
echo "time req made=".strtotime($request_date2);
echo"<br/>";
  $timediff = strtotime(time()) - strtotime($request_date2); // in seconds

if($timediff < 2 hours)//how to calculate 2 hours here
{
//do something
}
$reset_req=“2015-06-30 11:30:23”;
$timezone_offset=+8;//美国中部时间(gmt-6)对我来说
如果(isset($reset_req)){
$request_date2=strottime($reset_req)+$timezone_offset*60*60;
}
echo“current time=.strotime(time());
回声“
”; echo“time req make=“.strotime($request_date2)); 回声“
”; $timediff=strottime(time())-strottime($request_date2);//几秒钟内 if($timediff<2小时)//这里如何计算2小时 { //做点什么 }
$hour=3600//一小时有3600秒
如果($timediff<2*$hour)
{
//做点什么
}

$timediff以秒为单位。因此,您必须将其转换为小时或将2小时转换为秒,然后需要进行如下比较:

替换

if($timediff < 2 hours)//how to calculate 2 hours here
{
 //do something
}
if($timediff<2小时)//这里如何计算2小时
{
//做点什么
}

if($timediff<(2*3600))//这里如何计算2小时
{
//做点什么
}

每个人都说过如何计算2小时(2*3600秒)。但是他们没有告诉你的是你不能这么做:
strotime(time())
time()
已经为您提供了Unix时间戳,因此您无法将其转换两次

您的代码应该更像这样

<?php

$reset_req = "2015-06-30 11:30:23";   

$timezone_offset = +8; // us central time (gmt-6) for me

if(isset($reset_req)){
      $request_date2 = strtotime($reset_req)+$timezone_offset*60*60;
      $current = time();
} else {
      echo '$reset_req was not set';
      exit;
}

echo "current time= " . $current . "<br />";
echo "time req made=" . $request_date2 . "<br />";

$timediff = $current - $request_date2; // in seconds

if($timediff < (2*3600))//how to calculate 2 hours here
{
    echo "less than 7200 sec have past since $request_date2. Past: $timediff seconds";    
}else{
    echo "more than 7200 sec have past since $request_date2. Past: $timediff seconds";   
}

?>

试试这个

<?php

$reset_req = "2015-06-30 11:30:23"; 

//set default timezone here
date_default_timezone_set("Asia/Kuala_Lumpur");

$request_date2 = '';

if(isset($reset_req))
{
    $request_date2 = strtotime($reset_req);
}

echo "Current time = ".time();
echo"<br/>";
echo "Time req made =".$request_date2;
echo"<br/>";

$timediff = time() - $request_date2; // in seconds
echo "<br>Time Differnce : ".$timediff;

//how to calculate 2 hours here
if($timediff < 2*3600)
{
    //do something
}

?>


“你试着在两个小时内放多少秒吗?”罗兰肖说,“7200秒钟,我猜,请考虑至少添加一些词来解释为什么这个代码片段如何回答OP问题。”
<?php

$reset_req = "2015-06-30 11:30:23";   

$timezone_offset = +8; // us central time (gmt-6) for me

if(isset($reset_req)){
      $request_date2 = strtotime($reset_req)+$timezone_offset*60*60;
      $current = time();
} else {
      echo '$reset_req was not set';
      exit;
}

echo "current time= " . $current . "<br />";
echo "time req made=" . $request_date2 . "<br />";

$timediff = $current - $request_date2; // in seconds

if($timediff < (2*3600))//how to calculate 2 hours here
{
    echo "less than 7200 sec have past since $request_date2. Past: $timediff seconds";    
}else{
    echo "more than 7200 sec have past since $request_date2. Past: $timediff seconds";   
}

?>
<?php

$reset_req = "2015-06-30 11:30:23"; 

//set default timezone here
date_default_timezone_set("Asia/Kuala_Lumpur");

$request_date2 = '';

if(isset($reset_req))
{
    $request_date2 = strtotime($reset_req);
}

echo "Current time = ".time();
echo"<br/>";
echo "Time req made =".$request_date2;
echo"<br/>";

$timediff = time() - $request_date2; // in seconds
echo "<br>Time Differnce : ".$timediff;

//how to calculate 2 hours here
if($timediff < 2*3600)
{
    //do something
}

?>