2013-12-24 4 views
0

Я хочу найти разницу между двумя датами в php. Но я не получаю точной разницы. , пожалуйста, помогите мне. Выход я должен получить как «2 года 0 месяцев 0 дней». Но я получаю «1 год 12 месяцев и 4 дня». где я ошибаюсь?Как точно разница между двумя датами в php

$createddate="2015-12-24"; 

//find difference between the dates present-createddate of user 
    $now = time(); // present time 
    $your_date = strtotime($createddate); 

    $difference = abs($now - $your_date); 
    echo $difference; 

    // Years, months and days version 
$years = floor($difference/(365*60*60*24)); 
//echo $years; 
$months = floor(($difference - $years * 365*60*60*24)/(30*60*60*24)); 
//echo $months; 
$days = floor(($difference - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 
//echo $days; 
$membersince .= $years.' years '.$months.' months and '.$days.' days'; 
+0

объекты использования DateTime, и метод дифференциала(). Об этом много спрашивают. Я найду дубликат в поисках времени ... вы тоже должны это сделать. – naththedeveloper

+0

Возможный дубликат [Сравнение двух дат] (http://stackoverflow.com/questions/3847736/comparing-two-dates) – naththedeveloper

+0

Возможный дубликат [Как рассчитать разницу между двумя датами с помощью PHP?] (Http: // stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php) – PermanentGuest

ответ

4
<?php 
$datetime1 = new DateTime(); 
$datetime2 = new DateTime('2015-12-24'); 
$interval = $datetime1->diff($datetime2); 
$elapsed = $interval->format('%y years, %m months, %d days'); 
echo $elapsed; 

See it in action

+0

Спасибо, Джон работает :) – Sri