2015-05-11 2 views
-2

Нужна помощь, чтобы найти функцию в PHP, который будет возвращать мне количество лет, месяцев и даты между 2 указанными датамиDATEDIF эквивалент в PHP

Для Eg: DATEDIF («20-05-2015», "20 -05-2015 "," m ") вернется 1 месяц в excel, но при использовании date_diff я бы просто получил 31 день.

+0

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

ответ

0

Правильный способ работы с датами в PHP> = 5.2.0 использует DateTime, то есть:

$startRaw = '2013-05-10 12:04:58'; 
$start = DateTime::createFromFormat('Y-m-d H:i:s', $startRaw); 

$endRaw = date("2015-05-10 12:04:58"); 
$end = DateTime::createFromFormat('Y-m-d H:i:s', $endRaw); 

$diff = $start->diff($end); 
echo 'Difference: ' . $diff->format('%y years') . "\n"; 

Выход:

Difference: 2 years 

Демо:

http://ideone.com/3GzQsU


format 

Следующие символы распознаются в строке параметров формата . Каждый символ формата должен иметь префикс знака процента (%).

% Literal % % 
Y Years, numeric, at least 2 digits with leading 0 01, 03 
y Years, numeric 1, 3 
M Months, numeric, at least 2 digits with leading 0 01, 03, 12 
m Months, numeric 1, 3, 12 
D Days, numeric, at least 2 digits with leading 0 01, 03, 31 
d Days, numeric 1, 3, 31 
a Total amount of days 4, 18, 8123 
H Hours, numeric, at least 2 digits with leading 0 01, 03, 23 
h Hours, numeric 1, 3, 23 
I Minutes, numeric, at least 2 digits with leading 0 01, 03, 59 
i Minutes, numeric 1, 3, 59 
S Seconds, numeric, at least 2 digits with leading 0 01, 03, 57 
s Seconds, numeric 1, 3, 57 
R Sign "-" when negative, "+" when positive -, + 
r Sign "-" when negative, empty when positive -, 

Узнайте больше о DateTime class

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