Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2010, 00:54   #1
bush007
Форумчанин
 
Аватар для bush007
 
Регистрация: 10.02.2009
Сообщений: 226
По умолчанию вычислить разницу во времени

Добрый день, господа и Дамы!
вкратце ситуация:
в базе на мускл есть таблица с полями time_up & time_down. поля типа "time" . я пытаюсь посчитать разницу между окончанием и началом занятия.
т.е. начало занятия (time_up)в 10:00:00 , окончание (time_down) в 12:30:00. считает 2 часа а не 2,5.
конечно же я делаю неправильно:
Код:
.....table border=1 cellspacing=0 cellpadding=4 align=left>
	<tr>
	   <td>Начало</td>
	   <td>Конец</td>
	   <td>Всего</td>
	   <td>ID</td> <!--для удобства -->
	</tr>

<?php

mysql_connect("localhost", "root", "") or die("Could not connect to MySQL server!");
	@mysql_select_db("dbname") or die("Could not select company database!");
	$query="select * from times ;";
	//echo"";
	$result=mysql_query($query);
	while ($row = mysql_fetch_array($result))
	{
	$r = $row[time_down]- $row[time_up]; // тут конечно я лажанулся!
	echo "<tr>
	<td>$row[time_up]</td> <!--начало -->
	<td>$row[time_down]</td> <!--конец -->
	<td>$r</td> <!--сколько прошло???? -->
	<td>$row[id]</td>
	<td>";
	}

?>
</table>
1.Данные выводит в таблицу замечательно, только считает не так
подскажите плиз, как правильно работать со временем! функции я конечно почитал, но не догнал совершенно ! может необходимо конвертить в минуты сначала а потом и считать разницу?
использую Денвер(возможно что не определяюще)
2. Еще вопрос: может быть надо вводить время через форму в хтмл и писать в базу, тогда лучше обрабатывать результат? в растерянности..
3. секунды можно не отображать в результате??
следи за собой. Будь осторожен.
Не забывай свой первый "hello world".
bush007 вне форума Ответить с цитированием
Старый 24.01.2010, 02:13   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Думаю, с помощью функции date должно все получиться, если покопаться. Можно преобразовать в мсек, а затем посчитать разницу. Там можно настроить и вид выводимого результата.
Второй вопрос не оч.понятен, но обычно так и бывает, что данные вводятся и в базу пишутся.
motorway вне форума Ответить с цитированием
Старый 24.01.2010, 05:29   #3
LeoN
Форумчанин
 
Аватар для LeoN
 
Регистрация: 03.11.2006
Сообщений: 278
По умолчанию

если использовать мксек то не посчитаешь никогда - время то никсовое делает,думаю оптимально будет писать в минутах, и самому считать.
хотя я так посчитал: http://www.leogig.ru/webprogramming/vozrast-v-minimume. думаю поможет.
Разработка сайтов -дело прикольное
LeoN вне форума Ответить с цитированием
Старый 24.01.2010, 13:21   #4
bush007
Форумчанин
 
Аватар для bush007
 
Регистрация: 10.02.2009
Сообщений: 226
По умолчанию

Черд!
Неужели никто не считал, сколько прошло времени с 10:00 до 12:30????
есть первое время в таблице, есть второе, как хоть привести это значение к типу времени?, что
Код:
$row[time_up]=time("S:h:i")
? вручную как то не катит ибо значений, которых надо будет считать, около ста тыщ.
---------------------------------------
сделал:
Код:
.....
//--------------вычислить, сколько длится занятие.---------
$timeFrom = strtotime($row[time_up]);
$timeNow = strtotime($row[time_down]);
$diff = $timeNow - $timeFrom;
$days = floor($diff / (3600*24));
$hours = floor(($diff - ($days * 3600 * 24)) / 3600);
$minutes = floor(($diff - ($hours * ($days * 3600 * 24))) / 60);
$clock= $minutes/60;
//---------------------посчитали---------------------------	
	echo "<tr>
	<td>$row[time_up]</td>
	<td>$row[time_down]</td>
	<td>$clock</td>
	<td>$row[id]</td>
	<td>";
	}
?>
</table>....
решение нашел в http://forum.woweb.ru/topic43865s0.html?#entry301804
следи за собой. Будь осторожен.
Не забывай свой первый "hello world".

Последний раз редактировалось bush007; 24.01.2010 в 14:22.
bush007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить разницу между датами без учета года k1r1ch Общие вопросы Delphi 10 20.08.2009 18:36
Посчитать разницу прихода и ухода со склада bikeeva julia Microsoft Office Excel 3 01.05.2009 11:50
Вычислить. svobodys Помощь студентам 7 16.12.2008 17:21
Получить разницу Даты MAcK Общие вопросы Delphi 1 04.12.2008 17:19
Вычислить. Artimbulidor Помощь студентам 4 24.11.2008 19:10