Допустим есть дата $date='20.5.2010 20:00'; и возьмем сегодняшнюю дату(12.07.2010 23:00). Как можно узнать сколько прошло минут или дней. Обычное вычитание на ничего не даст может подскажите кто как решил данную проблему. Заранее СПС.
В Delphi так делал: function CalculateAge(Birthday, CurrentDate: TDate): Integer; var Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word; begin DecodeDate(Birthday, Year, Month, Day); DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay); if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then begin Result := 0; end else begin Result := CurrentYear - Year; if (Month > CurrentMonth) then Dec(Result) else begin if Month = CurrentMonth then if (Day > CurrentDay) then Dec(Result); end; end; end; Впринципе, нет ничего сложного чтобы переписать на php.
Примерно так) если не парится с год\лет минут\минуты и.т.д. PHP: <?php $today=time(); $date2=1274396400; $total = $today-$date2; $seconds_in_a_year = 3600 * 24 * 365; $years = floor($total / $seconds_in_a_year); $rest = $total % $seconds_in_a_year; $seconds_in_a_month = 3600 * 24 * 30; $months = floor ($rest / $seconds_in_a_month); $rest = $rest % $seconds_in_a_month; $seconds_in_a_day = 3600 * 24; $days = floor ($rest / $seconds_in_a_day); $rest = $rest % $seconds_in_a_day; $hours = floor ($rest / 3600); $rest = $rest % 3600; $minutes = floor ($rest / 60); $rest = $rest % 60; $seconds = $rest; print "$years год, $months месяц, $days день, $hours час, $minutes минут и $seconds секунд"; ?> Результат выполнения скрипта: 0 год, 1 месяц, 23 день, 2 час, 1 минут и 6 секунд
Разницу дат можно посчитать с использованием функции PHP strtotime() PHP: <?php $old_date = '20.5.2010 20:00'; $diff = time() - strtotime($old_date); $fullDays = floor($diff/(60*60*24)); $fullHours = floor(($diff-($fullDays*60*60*24))/(60*60)); $fullMinutes = floor(($diff-($fullDays*60*60*24)-($fullHours*60*60))/60); print "Прошло $fullDays дней, $fullHours часов и $fullMinutes минут"; ?>