php时间戳之间的时间差(小时)

php时间戳之间的时间差(小时),php,timestamp,Php,Timestamp,我使用phptime()函数生成了一个php时间戳1331875634 <?php $time1 = "1331875634"; $time2 = time(); echo $differencem; //time difference in minutes echo $differenceh; //time difference in hours ?> 我使用相同的函数生成了当前时间戳 <?php $time1 = "1331875634"; $time2 = time(

我使用php
time()
函数生成了一个php时间戳
1331875634

<?php
$time1 = "1331875634";
$time2 = time();

echo $differencem; //time difference in minutes
echo $differenceh; //time difference in hours
?>
我使用相同的函数生成了当前时间戳

<?php
$time1 = "1331875634";
$time2 = time();

echo $differencem; //time difference in minutes
echo $differenceh; //time difference in hours
?>


我想在几分钟内知道这两者的区别。分钟可以除以60,以小时为单位。

如果你减去它们,你会得到以秒为单位的差异,所以除以60得到分钟,再除以60得到小时。

有一次我需要将秒转换为时间,如1天03:34:13天小时:分钟:秒

我写了这个函数

function sECONDS_TO_HMS($seconds)
  {

     $days = floor($seconds/86400);
     $hrs = floor($seconds/3600);
     $mins = intval(($seconds / 60) % 60); 
     $sec = intval($seconds % 60);

        if($days>0){
          //echo $days;exit;
          $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT);
          $hours=$hrs-($days*24);
          $return_days = $days." Days ";
          $hrs = str_pad($hours,2,'0',STR_PAD_LEFT);
     }else{
      $return_days="";
      $hrs = str_pad($hrs,2,'0',STR_PAD_LEFT);
     }

     $mins = str_pad($mins,2,'0',STR_PAD_LEFT);
     $sec = str_pad($sec,2,'0',STR_PAD_LEFT);

     return $return_days.$hrs.":".$mins.":".$sec;
  }

echo sECONDS_TO_HMS(65); // 00:01:05
echo sECONDS_TO_HMS(76325); //21:12:05
echo sECONDS_TO_HMS(345872); // 4 Days 00:04:32 

我认为这可能会对您有所帮助。

我创建此代码是为了获取标准PHP UNIX时间戳,计算时间差并返回标准时间或专用时间格式。这对于确定项目的时间和计算获得结果所需的时间非常有用

function timerFormat($start_time, $end_time, $std_format = false)
{       
$total_time = $end_time - $start_time;
$days       = floor($total_time /86400);        
$hours      = floor($total_time /3600);     
$minutes    = intval(($total_time/60) % 60);        
$seconds    = intval($total_time % 60);     
$results = "";
if($std_format == false)
{
  if($days > 0) $results .= $days . (($days > 1)?" days ":" day ");     
  if($hours > 0) $results .= $hours . (($hours > 1)?" hours ":" hour ");        
  if($minutes > 0) $results .= $minutes . (($minutes > 1)?" minutes ":" minute ");
  if($seconds > 0) $results .= $seconds . (($seconds > 1)?" seconds ":" second ");
}
else
{
  if($days > 0) $results = $days . (($days > 1)?" days ":" day ");
  $results = sprintf("%s%02d:%02d:%02d",$results,$hours,$minutes,$seconds);
}
return $results;
}

Example:

$begin_routine_time = time();
echo(timerFormat($begin_routine_time, $time()));
$datetime1=新的日期时间(日期('Y-m-d H:i:s',1331875634));
$datetime2=新的日期时间(日期('Y-m-d H:i:s');
$oDiff=$datetime1->diff($datetime2);
回声$oDiff->y.“年
”; echo$oDiff->m.“月数
”; echo$oDiff->d.“天
”; echo$oDiff->h.“小时数
”; echo$oDiff->i.“分钟
”; 回显$oDiff->s.“秒
”;
php.net中的时差问题,我认为您没有阅读php手册。
return sprintf(“%s%02d:%02d:%02d',$return\u days,$hrs,$mins,$sec)并且您不需要任何STRU pad。您需要添加此项以获得准确的总时差
$totalHourDiff=($oDiff->y*365.25+$oDiff->m*30+$oDiff->d)*24+$oDiff->h+$oDiff->i/60