2017-01-24 4 views
0

Im пытается получить разницу между двумя разными датами в минутах, но не выводится правильно.Получите разницу между 2 date_time в минутах

Ex:

$then = "2017-01-23 18:21:24"; 

//Convert it into a timestamp. 
$then = strtotime($then); 
//Get the current timestamp. 
$now = time(); 

//Calculate the difference. 
$difference = $now - $then; 

//Convert seconds into minutes. 
$minutes = floor($difference/60); 

echo $minutes; 

выводит 611 минут, и это неправильно, так как от "2017-01-23 18:21:24" до "2017-01-24 12:36:24" это прошлое более 611 минут. Является ли код неправильным?

ответ

2

Попробуйте установить часовой пояс по умолчанию

date_default_timezone_set('Europe/Copenhagen'); 

Ofc изменить Европу/Копенгаген для того, который соответствует вашим потребностям.

+0

Здесь вы можете увидеть различные часовые пояса: http://php.net/manual/en/timezones.europe.php – Michael

0

Если вы используете или в состоянии использовать PHP 5.3.x или более поздней версии, вы можете использовать его функциональность объекта DateTime:

$date_a = new DateTime('2010-10-20 08:10:00'); 
$date_b = new DateTime('2008-12-13 10:42:00'); 

$interval = date_diff($date_a,$date_b); 

echo $interval->format('%h:%i:%s'); 

Вы можете играть с форматом в различных формах, и как только вы дат в объектах DateTime, вы можете использовать множество различных функций, например, сравнение с помощью обычных операторов. Смотрите руководство для более: http://us3.php.net/manual/en/datetime.diff.php

+0

Спасибо за ваш отзыв, я очень ценю, но он по-прежнему не разрешает мою проблему относительно того, что я пытаюсь сделать, просто давая мне другое решение, а не аансверу для моей проблемы. – Pedro

0

Я проверил ваш код работает отлично Так что, если есть какие-либо сомнения see your result

Но ты не прав, так, чтобы игнорировать это установить часовой пояс.