2016-04-21 128 views
0

我试图比较两个日期 - 检查他们之间在几分钟之间的差异。 我的代码是:如何从dateTime对象获取日期

$first_date = new DateTime($token->created_at); 
 
$first_date->format('Y-m-d H:i:s'); 
 

 
$second_date = new DateTime(); 
 
$second_date->format('Y-m-d H:i:s'); 
 

 
$difference = $first_date->diff($second_date); 
 
$time_diff = $difference->format("%i"); 
 

 
var_dump($first_date); 
 

 
//I get this object 
 
object(DateTime)#552 (3) { 
 
    ["date"]=> 
 
    string(26) "2016-04-21 10:00:00.000000" 
 
    ["timezone_type"]=> 
 
    int(3) 
 
    ["timezone"]=> 
 
    string(3) "UTC" 
 
}

如何从DateTime对象约会,所以我应该比较两个日期,检查差异悫他们。 谢谢。

回答

1
$difference_in_hours = (($second_date->getTimestamp() - $first_date->getTimestamp())/3600); 

如果这两个日期之间的差大于60分:

if($difference_in_hours>1) 
{ 
    //if so, insert your desired code here 
} 
+0

如果两个日期之间的差异是例如 - 2天0小时5分钟 - >将会是这个代码的工作,它应该是'''$ difference_in_hours> 1''',因为它应该? –

+0

@mistery_girl正确。 '$ difference_in_hours'从字面上看已经过去了数小时。如果你之间有2天,那么$ difference_in_hours将等于48(意思是48小时)。 – Webeng

+0

感谢您的解释。 :))) –

1

差异秒:

$diff_in_seconds = $first_date->getTimestamp() - $second_date->getTimestamp(); 

检查差异超过60分钟:

if($diff_in_seconds > 60 * 60){ 
    echo("more than 60 minutes difference"); 
} 
+0

我要检查,如果两个日期之间相差超过60分钟以上。 –

1
echo $first_date->format('Y-m-d H:i:s'); 
1

您可以查看经过时间以分钟为单位如下:

$interval = $first_date->diff($second_date); 
$elapsed = $interval->format('%i minutes'); 
echo $elapsed; 
+0

谢谢大家!我这样做:''$ time_diff = $差异 - >格式(“%h”);'' - 我应该比较几小时而不是几分钟。 –