2013-02-27 7 views
0

im попытался получить дату в дате после вычитания две даты, но не получая правильный результат, а результат - 1970-01-07 05:00:00, но я требовать результат 2013-02-07 12:02:00вычесть две даты и показать результат в дате formate

$start_date =strtotime('2013-02-13 12:02:00'); 
$end_date =strtotime('2013-02-20 12:02:00'); 
$total = ($start_date - $end_date); 
echo date("Y-m-d H:i:s",$total); 
+0

Результат вычитания одной даты из другого - это период, а не другая дата. Почему бы это было 2013-02-07 12:02:00? –

+0

@ user1869193, кстати это не разница каким-либо образом –

ответ

2

В РНР 5.3 вы можете использовать метод DateTime::diff() вместе с DateInterval класса для этого:

<?php 

$start = new DateTime('2013-02-13 12:02:00'); 
$end = new DateTime('2013-02-20 12:02:00'); 

$interval = $end->diff($start); 
echo $interval->format('%Y-%M-%D %H:%I:%S'); 

Кроме того, это это предполагаемый способ сделать с PHP5.3, поскольку он обрабатывает временные интервалы, летнее время (високосные часы) и високосные годы.

2

вы получаете правильный результат, как после вычитания двух результата даты 7 дней, которая дате добавления по умолчанию 1970-01-01

0

Попробуйте код ниже

$date2 ='2013-02-13 12:02:00'; 
$date1 ='2013-02-20 12:02:00'; 

$diff = abs(strtotime($date2) - strtotime($date1)); 

$years = floor($diff/(365*60*60*24)); 
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 

printf("%d years, %d months, %d days\n", $years, $months, $days); 
Смежные вопросы