Как определить колечиство дней между датами

Статус
В этой теме нельзя размещать новые ответы.

Unlimited

Гуру форума
Регистрация
12 Окт 2006
Сообщения
156
Реакции
69
Нужно определить количество дней между двумя датами например
03.09.2006 и 10.10.2006 (чч.мм.гг), ладно если они в одном месяце, а когда в разных, или ещё хуже все это в декобре-январе происходит :). Посидел подумал с часок, алгоритм получился не маленький, посидев ещё немного в голову пришла мысль может есть встроенная функция какая-нить?
 
Unlimited написал(а):
Нужно определить количество дней между двумя датами например
03.09.2006 и 10.10.2006 (чч.мм.гг), ладно если они в одном месяце, а когда в разных, или ещё хуже все это в декобре-январе происходит :). Посидел подумал с часок, алгоритм получился не маленький, посидев ещё немного в голову пришла мысль может есть встроенная функция какая-нить?
вам повезло :)
iSlayter (18:20:37 14/10/2006)
ыыы)

WP (18:20:54 14/10/2006)
)))

iSlayter (18:21:05 14/10/2006)
Для просмотра ссылки Войди или Зарегистрируйся

iSlayter (18:21:09 14/10/2006)
я тут щас ответ пишу)

iSlayter (18:21:26 14/10/2006)
ругаю его формат хранения даты

WP (18:21:37 14/10/2006)
стой)

WP (18:21:40 14/10/2006)
на***

iSlayter (18:21:50 14/10/2006)
а что?

iSlayter (18:21:54 14/10/2006)
ты ответить хочешь?

WP (18:22:00 14/10/2006)
function date_period($date_start, $date_finish)
{
$st = explode('-', date('d-m-Y-H-i-s',$date_start));
$fin = explode('-', date('d-m-Y-H-i-s',$date_finish));
if (($seconds = $fin[5] - $st[5]) < 0) {$fin[4]--; $seconds += 60;}
if (($minutes = $fin[4] - $st[4]) < 0) {$fin[3]--; $minutes += 60;}
if (($hours = $fin[3] - $st[3]) < 0) {$fin[0]--; $hours += 24;}
if (($days = $fin[0] - $st[0]) < 0) {$fin[1]--; $days += date('t', mktime(1, 0, 0, $fin[1], $fin[0], $fin[2]));}
if (($months = $fin[1] - $st[1]) < 0) {$fin[2]--; $months += 12;}
$years = $fin[2] - $st[2];
return array($seconds,$minutes,$hours,$days,$months,$years);
}
function date_period_text($date_start,$date_finish)
{
$result = date_period($date_start,$date_finish);
$str = '';
if ($result[5] > 0) {$str .= $result[5].' '.lang_cache_getmessage('MESS_YEARS'). ' ';}
if ($result[4] > 0) {$str .= $result[4].' '.lang_cache_getmessage('MESS_MONTHS'). ' ';}
if ($result[3] > 0) {$str .= $result[3].' '.lang_cache_getmessage('MESS_DAYS'). ' ';}
if ($result[2] > 0) {$str .= $result[2].' '.lang_cache_getmessage('MESS_HOURS'). ' ';}
if ($result[1] > 0) {$str .= $result[1].' '.lang_cache_getmessage('MESS_MINUTES'). ' ';}
if ($result[0] > 0 or $str == '') {$str .= $result[0].' '.lang_cache_getmessage('MESS_SECONDS'). ' ';}
return trim($str);
}


WP (18:22:08 14/10/2006)
+ strtotime

iSlayter (18:22:11 14/10/2006)
ты не понял)

iSlayter (18:22:15 14/10/2006)
у него ето)

iSlayter (18:22:20 14/10/2006)
дата не в unixtime()

WP (18:22:30 14/10/2006)
по***

WP (18:22:34 14/10/2006)
14.10.2006 18:22:09, WP
+ strtotime
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху