Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как узнать сколько дней и минут между датами

Сообщения:  [1-10]   [11-11] 

 
 автор: BOleg   (06.12.2005 в 12:03)   письмо автору
 
   для: MrJile   (06.12.2005 в 10:51)
 

Кстати это довольно типичная операция подобных функций я не нашел и в литературе примеров тоже (по крайней мере в своей), а вычислить самому не получилось хотя знаний у меня достаточно (моя точка зрения) - это наводка авторам книги включить подобный код в раздел "Работа с датами".

   
 
 автор: BOleg   (06.12.2005 в 12:03)   письмо автору
 
   для: MrJile   (06.12.2005 в 10:51)
 

MrJile спасибо огромное похоже получилось я бы никогда не додумался сразу видно человек с математикой дружит еще не проверял на базе но в любом случае результат лучше чем у меня ,еще раз спасибо.

   
 
 автор: MrJile   (06.12.2005 в 10:51)   письмо автору
 
   для: BOleg   (05.12.2005 в 18:20)
 

Может это то, что Вам надо:


 $start_date = mktime(18,20,0,8,25,2004);
 $end_date = mktime(14,15,0,8,29,2004);

 $sec = $end_date - $start_date;
 $days = floor($sec / 86400);
 $hours = floor(($sec - $days * 86400) / 3600);
 $minutes = floor(($sec - $days * 86400 - $hours * 3600) / 60);
 $seconds = $sec - $days * 86400 - $hours * 3600 - $minutes * 60;

 echo "Days : $days, hours : $hours, minutes : $minutes, seconds : $seconds";


Полученный результат:

 Days : 3, hours : 19, minutes : 55, seconds : 0

   
 
 автор: BOleg   (06.12.2005 в 00:28)   письмо автору
 
   для: cheops   (05.12.2005 в 22:06)
 

Данные из MySQL но дата там в varchar записанна ну а код на пхп.

   
 
 автор: Akira   (05.12.2005 в 22:12)   письмо автору
 
   для: Akira   (05.12.2005 в 20:37)
 


<?
$date_start 
mktime(0,0,0,0,0,2004);// Старт даты. 
$date_end mktime(0,0,0,0,0,2005); // Конец даты. 
$date $date_end $date_start// Разница в секундах. 
echo date("h:i:s d-m-Y",$date); // Вывод даты
?>

код не верный был :))
Вообще как-то так ;)

   
 
 автор: cheops   (05.12.2005 в 22:06)   письмо автору
 
   для: BOleg   (05.12.2005 в 18:20)
 

А дело где происходит в PHP или MySQL?

   
 
 автор: BOleg   (05.12.2005 в 20:55)   письмо автору
 
   для: Akira   (05.12.2005 в 20:37)
 

Это текушая дата и время с 1.01.1970 немного не то , но всеравно спасибо за попытку у меня уже логики не хватает с датами бороться.

   
 
 автор: Akira   (05.12.2005 в 20:37)   письмо автору
 
   для: BOleg   (05.12.2005 в 18:20)
 


<?
 $date_start 
mktime(18,18,0,08,25,2005); // Старт даты.
 
$date_end mktime(18,18,0,08,25,2005); // Конец даты.
 
$date $date_start $date_end// Разница в секундах.
 
echo date("h:i:s d-m-Y",$date); // Вывод даты
?>

Должен работать :)) Я долго бился, пока вот так не вывел.

   
 
 автор: BOleg   (05.12.2005 в 20:33)   письмо автору
 
   для: Киналь   (05.12.2005 в 19:07)
 

<?php
$seconds=mktime(14,15,0,8,29,2004) - mktime(18,20,0,8,25,2004);
echo "<br>minutes ".$minutes=$seconds/60;
echo "<br>hours ".$hours=$seconds/3600;
echo "<br>days ".$days=$seconds/86400;
?>
результат

minutes 5515
hours 91.9166666667
days 3.82986111111

а должно получится 3 дня 19 часов 55 минут если я не ошибаюсь ,все не так просто как кажется.

и таких дат более 6000 в базе нужна статистика по кождой у меня каждая 8 в среднем с ошибкой получается.

   
 
 автор: Киналь   (05.12.2005 в 19:07)   письмо автору
 
   для: BOleg   (05.12.2005 в 18:20)
 


$seconds=mktime(int hour2, int minute2, ....) - mktime(int hour1, int minute1, ....)
// не помню порядок параметров, посмторите в мануале
$minutes=$seconds/60;
$hours=$seconds/3600;
$days=$seconds/86400;

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования