[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Найти разницу между 2-мя датами(время)
Stasonix
напр.:
current time - sometime = 10 min. (how to count this?)
Когда я делаю это в таком виде:
$curtime = time();
$diff = $curtime - $sometime;
то это возвратит мне время в UNIX-формате, но мне надо знать точно сколько это в нормальном понимании, т.е. 10 мин. должно быть 10, а не 2342341232.




Спустя 9 минут, 39 секунд (12.02.2011 - 15:27) alex12060 написал(а):
Смотри в сторону microtime() и страница сгенерирована за...

Спустя 22 дня, 14 часов, 10 минут, 33 секунды (5.03.2011 - 05:37) Роман Орловский написал(а):
$date1 = $somedate; //дата от формата 2011-03-05 04:00:00
$date2 = strftime("%Y-%m-%d %H:%M:%S", time()); // текущее время

$base_day = date("d",strtotime($somedate)); // день от
$base_mon = date("m",strtotime($somedate)); // месяц от
$base_yr = date("Y",strtotime($somedate)); // год от

$base_mon_max = date ("t",mktime(0,0,0,$base_mon,$base_day,$base_yr)); //количество дней в месяце из даты добавления

$diff = abs(strtotime($date2) - strtotime($date1)); //разница дат

$years = floor($diff / (365*60*60*24)); //разница год
$months = floor(($diff - $years * 365*60*60*24) / ($base_mon_max*60*60*24)); //разница месяц
$days = floor(($diff - $years * 365*60*60*24 - $months*$base_mon_max*60*60*24)/ (60*60*24)); разница дни

$hours = floor(($diff - $years * 365*60*60*24 - $months*$base_mon_max*60*60*24 - $days*60*60*24)/ (60*60)); разница часы

$minuts = floor(($diff - $years * 365*60*60*24 - $months*$base_mon_max*60*60*24 - $days*60*60*24 - $hours*60*60)/ 60); разница минуты

$seconds = floor(($diff - $years * 365*60*60*24 - $months*$base_mon_max*60*60*24 - $days*60*60*24 - $hours*60*60 - $minuts*60)); разница секунды

printf("%d years, %d months, %d days, %d hours, %d minuts\n, %d seconds\n", $years, $months, $days, $hours, $minuts, $seconds); выводим на екран
[php]

Спустя 4 часа, 58 минут, 3 секунды (5.03.2011 - 10:35) Trianon написал(а):
Цитата (Stasonix @ 12.02.2011 - 15:17)
напр.:
current time - sometime = 10 min. (how to count this?)
Когда я делаю это в таком виде:
$curtime = time();
$diff = $curtime - $sometime;
то это возвратит мне время в UNIX-формате, но мне надо знать точно сколько это в нормальном понимании, т.е. 10 мин. должно быть 10, а не 2342341232.

echo $diff; вернет вовсе не 2342341232, а 600 или величину близкую к этой.
что будет означать 600 секунд - вполне нормальное понимание.

Спустя 4 часа, 14 минут, 49 секунд (5.03.2011 - 14:50) keovken написал(а):
Цитата (Stasonix @ 12.02.2011 - 12:17)
должно быть 10, а не 2342341232.

А что тебе мешает от такой цифры 1111111111 отнять такую 101010101, а полученный результат перевести в нормальное время date(результат) (воде так)

Спустя 27 минут, 48 секунд (5.03.2011 - 15:18) Trianon написал(а):
date() отображает абсолютный момент времени, а не интервал.
Преобразование в минуты, часы, дни, недели и т.д. все равно придется писать руками.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.