Comments 21
Не смогли изобрести машину времени и придумали переводить время.
+1
Я обычно все операции с датами делаю в базе данных. В большинстве баз учтено то что в дне может быть не 24 часа, в году не 365 дней и прочие нюансы
0
А как в MySQL посчитать количество дней между 2-мя DATETIME? И при том чтобы с дробной частью?
0
К сожалению я редко использую MySQL, в основном Oracle и поэтому не могу вам ответить. Но удивлюсь если там нет типа интервал и функции которая считает количество дней в интервале.
0
DATEDIFF и ему подобные. TO_DAYS тоже поможет. Читайте мануал.
0
0
day(date1-date2)
а про размерность дробной части Вы ничего не сказали. можно, например взять так:
hour((date1-date2)-day(date1-date2))
а про размерность дробной части Вы ничего не сказали. можно, например взять так:
hour((date1-date2)-day(date1-date2))
+2
Проблема в том что если мы считаем интервал с 12 часов одного дня до 24 часов другого дня, и при этом происходит переход на летнее или зимнее время, количество дней никак не будет полтора. А DATEDIFF возвращает целое число. Вобщем наверное задача у меня слишком специфична для стандартных функции MySQL.
0
UFO just landed and posted this here
Да, в БД есть тип данных дата/датавремя, и оперировать с ними проще. А в пхп его как такового нет. :(
0
Используйте UTC и да будет вам счастье.
0
DATEDIFF('2009-03-30','2009-03-27') = 3
0
я использую для этого strtotime('+1 day', $time); обрабатывает всегда правильно, и дней одинаково получается ;)
0
я бы руки оторвал за такой код. Date медленная функция, strtotime еще медленнее.
$date = explode(':', date('m:d:Y', strtotime($arr_date)));
$arr_mk = mktime (0, 0, 0, $date[0], $date[1], $date[2]);
$date = explode(':', date('m:d:Y', strtotime($arr_date)));
$arr_mk = mktime (0, 0, 0, $date[0], $date[1], $date[2]);
-1
$arr_mk = gmmktime (0, 0, 0, date('m', strtotime($arr_date)), date('d', strtotime($arr_date)), date('Y', strtotime($arr_date)));
$dep_mk = gmmktime (0, 0, 0, date('m', strtotime($dep_date)), date('d', strtotime($dep_date)), date('Y', strtotime($dep_date)));
И вроде как никаких проблем с переходом на летнее время.
+1
Sign up to leave a comment.
Articles
Change theme settings
А в каждом ли дне 24 часа?