![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
Есть скипт, который должен запускаться в определенное время каждый день (это время может меняться, оно хранится в базе данных в формате чч:мм:сс)
Для запуска скипта я хочу использовать cron, который будет раз в минуту запускаться и должен сравнивать время текущее с временем указанным в базе. У меня не получается корректно составить условие, т.е как правильно сравнить время в данном случае?
Заранее спасибо) |
|||
|
||||
DeamonShan |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
время можно сравнивать напрямую, то есть в том формате, в котором записан.
тогда условие
вернет false; главное с лева и справа были одинаковый формат времени... Можно попробовать сравнить в секундах, преобразовав в секунды времена. Это сообщение отредактировал(а) DeamonShan - 22.9.2010, 13:38 |
||||
|
|||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
DeamonShan, а в int то хранить удобнее будет.
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Risyaalex |
|
||||||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
а как текущее время в таком формате вывести? или вытянуть из бд в другом формате? я теоретически понимаю что формат должен быть одинаковым, а вот практически..) |
||||||
|
|||||||
DeamonShan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
Sanchezzz, ну тс сказал что формат чч:мм:сс)))
Risyaalex, Текущее время:
формат "H:i:s" надо тоже побирать, потому что время у вас может быть либо 12 часовым, либо 24 часовы, соответвественно H надо заменить на G, если 24 часовой формат времени. Это сообщение отредактировал(а) DeamonShan - 22.9.2010, 15:42 |
|||
|
||||
evilice |
|
||||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Я думаю Вашу проблему можно решить как-то так:
Добавлено через 5 минут К стати! Есть ещё один вариант, на случай если плохо знаете SQL
|
||||
|
|||||
Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
спасибо, сейчас буду пробовать)))
Добавлено @ 16:22
вот этот вариант подошел только $time == date поменяла на $time <= date иначе не хотел работать (все равно у меня скрипт отрабатывает только один раз, до смены данных) спасибо большое) Это сообщение отредактировал(а) Risyaalex - 22.9.2010, 16:23 |
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Никогда и не за что не сравнивайте 12:13<13:45 и тп, это вам не помидоры считать!
Бед не наберетесь ![]() Это сообщение отредактировал(а) Muerto - 22.9.2010, 17:41 |
|||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
||||
|
||||
evilice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Muerto прав!!!
В моём примере идёт сравнивание строк! Если Вам, Risyaalex, нужно сравнить на больше/меньше, то результат, возвращаемый из БД, нужно преобразовать к Date или int. |
|||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
Секунды проверять нет смысла. Крон включается раз в минуту. А если система загружена, то скрипт может отработать и в 2, и в 5 секунд.
|
|||
|
||||
evilice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Абсолютно согласен!
Если проверка будет проходить 1 раз в минуту, то из проверки достаточно убрать секунды и тогда не надо будет преобразовывать к другим форматам, а просто сравнивать как строку |
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
У меня лично такие сравнения не работали корректно... поэтому и не советую...
Стоит построить цикл от 00:00 до 24:00 и сравнивать , я уверен что все станет понятно... Это сообщение отредактировал(а) Muerto - 22.9.2010, 21:30 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |