比较两个日期在PHP中的问题,分钟总是0

问题描述:

我需要设置相同的日期比较,我先用这个PHP代码练习,但是无论如何改变日期我最终得到的时间秒,但分钟总是0.顺便说一句,理想情况下,我希望能够写入欧洲格式的日期dd/mm/yy hh:mm但是这不起作用,所以我将其调整为美国格式。无论如何感谢您的帮助。比较两个日期在PHP中的问题,分钟总是0

date_default_timezone_set('Europe/London'); 
$date= new DateTime('2015-06-21 18:32:00'); 
$now = new DateTime(); 
$interval = $date->diff($now); 
echo "difference " . $interval->d . " days, " . $interval->h." hours, ".$interval->m." minutes"; 
+0

的可能重复的所有属性,你将如何设置日期[如何计算两个日期之间的差异使用PHP?](http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php) –

+0

不,我已经检查所有这些想出这个代码,它不能解决问题,答案bel ow做到了。 – Alk

你犯了一个简单的错误,用于表示间隔分钟的属性,其i而不是mm实际上是Months财产。

这也是使用欧洲格式

$date = DateTime::createFromFormat('d/m/Y H:i:s', '21/06/2015 18:32:00'); 
$now = new DateTime(); 
$interval = $date->diff($now); 
echo "difference " . $interval->d . " days, " . $interval->h." hours, ".$interval->i." minutes"; 

如果你做一个print_r($interval),你将能看到类似这样的

DateInterval Object 
(
    [y] => 0 
    [m] => 0 
    [d] => 0 
    [h] => 6 
    [i] => 4 
    [s] => 15 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 1 
    [days] => 0 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
) 
+0

这可以合并到一个SQL查询中,我想加载所有项目的日期字段小于当前日期..它会像'SELECT * FROM table WHERE datefield Alk

+0

是的,但那真的是另一个问题。你也可以使用'WHERE datefield BETWEEN'2015-01-01 00:00:01'和'2015-02-01 00:00:01''语法 – RiggsFolly

+0

我知道但我不想等90分钟问另一个问题,所以我非常感谢你能否帮助我。我真的不明白这是如何工作的,只要它低于当前时间,我不需要它在任何时间间隔 – Alk

使用$ interval-> i表示分钟数,$ interval-> m表示数月。