![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Biff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
Например в Excel если вычесть от 18:37 - 17:37 будет равно 1:00. Или 18:37 - 18:34 = 0:03
А попытался вычесть время преобразовав его с помощь StrToTime(). $dateTime01 = $_POST[times]; $dateTime02 = $_POST[timevalue]; // $dateTime1 = StrToTime($dateTime01); $dateTime2 = StrToTime($dateTime02); // $dateTime4 = ($dateTime1 - $dateTime2); $_POST[time] = date("H:i",$dateTime4); Но на выходе $_POST[time] записывает не разницу во времени. Например если $_POST[times]; равно 16:41 а $_POST[timevalue]; равно 16:46 При вычитании 2-го из первого должно быть так 00:05 но почему-то в базе данных записывается так 16:45 |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Правильно будет конвертировать эти значения в timestamp, вычитать, и конвертировать обратно...
Это тебе не яблоки считать и вычитать Я встречал "программистов" которые что бы узнать если одно число позже другого или нет использовали - ... и если да то удаляли записи с базы, результат был плачевен Это сообщение отредактировал(а) Muerto - 5.8.2010, 22:16 |
|||
|
||||
| Biff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
Вот так что ли? можно пример?
$dateTime1 = timestamp($dateTime01); $dateTime2 = timestamp($dateTime02); Добавлено @ 23:37
Я по вашему что делаю? strtotime -лексическое преобразование строки времени в Unix timestamp. Это сообщение отредактировал(а) Biff - 5.8.2010, 23:43 |
|||
|
||||
| CruorVult |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
Для таких операций лучше использовать объект DateTime:
|
||||
|
|||||
| Biff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
А что такое diff? Добавлено через 3 минуты и 17 секунд Просто если протестировать ваш скрипт, то происходит такая ошибка: Fatal error: Call to undefined method DateTime::diff() in /адрес test.php on line 11 |
|||
|
||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: 9 Всего: 28 |
||||
|
||||
| Biff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
PHP скорее всего 5.0, а может и последняя.
но я всё равно не могу понять, что за функция diff() - ни где нет описания. Задачу решил вот таким методом может кому-то пригодится:
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| Biff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
Спасибо почитаю Это сообщение отредактировал(а) Biff - 6.8.2010, 11:28 |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Biff, Я сейчас подумал над вашим кодом и понял где у вас проблема...
Что же за грубая ошибка? timestamp Это по сути дела сколько секунд прошло с 1970 года... Если вы вчитайте допустим время сейчас и через 10 секунд, то по сути дела вы делайте date("H:i",10); А функция date требует значение timestamp Вам нужно использовать СВОЮ функцию форматировки, которая возьмет количество секунд ваш $dateTime4 И напишет его в формате H:i к примеру 10 = 0:00:10 61=0:01:01 Вот так это и должно работать. А как привратить 60 секунд в 00:01 ? нужно делить ... играйте с /60 Можете в гугле поискать convert second to time format Это сообщение отредактировал(а) Muerto - 6.8.2010, 13:56 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |