2014-07-01 2 views
0

У меня есть этот код, чтобы вычитать две даты и получить разницу между ними в течение нескольких минут:Как получить результат вычитания двух временных меток за считанные минуты?

date_default_timezone_set('Asia/Istanbul'); 
$date1 = '2014-07-01 09:07:25'; 
$date1 = date_create($date1); 
$current_pc_date = date('Y-m-d H:i:s'); 
$current_pc_date = date_create($current_pc_date); 
$diff = date_diff($current_pc_date,$date1); 
$minutes_diff = $diff->format("%R%i"); 
echo $minutes_diff; 

if($minutes_diff<5 && $minutes_diff>0) 
{ 
    echo 'yes'; 
} 
else 
{ 
    echo 'no'; 
} 

Я хочу, чтобы вычесть даты и получить результаты в течение нескольких минут, но здесь вычитать мельчайшие детали в двух дат, так если я изменил часовой часть $date все еще дает тот же результат при вычитании из другой даты, например:

2014-07-01 02:25:48 
2014-07-01 02:23:48 

это приведет к 2 minutes

, если я изменил часовой часть будет по-прежнему дает тот же результат:

2014-07-01 03:25:48 
2014-07-01 02:23:48 

это приведет к 2 minutes

Я хочу, чтобы получить результат во втором примере, как 62 minutes

+0

'$ minutes_diff = $ diff-> format ("% h ") + $ diff-> format ("% i ");' –

ответ

0

Вы можете попробовать :

function timeDiff($start_date,$end_date="now"){ 
    $time_diff = (new Datetime($start_date))->diff(new Datetime($end_date)); 
    $time_diff_minute = $time_diff->days * 24 * 60; 
    $time_diff_minute += $time_diff->h * 60; 
    $time_diff_minute += $time_diff->i; 
    return $time_diff_minute; 
} 
    timeDiff('2014-07-01 03:25:48', '2014-07-01 02:23:48'); // 62 
0

Вы можете просто преобразовать свое время в секундах, а затем вычесть, а затем преобразовать разницу в минуты:

$t1 = '2014-07-01 03:25:48'; 
$t2 = '2014-07-01 02:23:48'; 

$minutes_diff = abs(strtotime($t1) - strtotime($t2))/60; 

echo $minutes_diff; //62 

See demo


Литература:

strtotime() преобразует дату в метку времени (в секундах с 1 января 1970 г.)

abs() получает абсолютное значение разности (в случае $t2 больше $t1)

Смежные вопросы