| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > сравнение текущего времени с указанным |
| Автор: Risyaalex 22.9.2010, 13:16 | ||
| Есть скипт, который должен запускаться в определенное время каждый день (это время может меняться, оно хранится в базе данных в формате чч:мм:сс) Для запуска скипта я хочу использовать cron, который будет раз в минуту запускаться и должен сравнивать время текущее с временем указанным в базе. У меня не получается корректно составить условие, т.е как правильно сравнить время в данном случае?
Заранее спасибо) |
| Автор: DeamonShan 22.9.2010, 13:37 | ||||
время можно сравнивать напрямую, то есть в том формате, в котором записан.
тогда условие
вернет false; главное с лева и справа были одинаковый формат времени... Можно попробовать сравнить в секундах, преобразовав в секунды времена. |
| Автор: Sanchezzz 22.9.2010, 14:50 |
| DeamonShan, а в int то хранить удобнее будет. |
| Автор: Risyaalex 22.9.2010, 15:22 | ||||||
а как текущее время в таком формате вывести? или вытянуть из бд в другом формате? я теоретически понимаю что формат должен быть одинаковым, а вот практически..) |
| Автор: DeamonShan 22.9.2010, 15:30 | ||
| Sanchezzz, ну тс сказал что формат чч:мм:сс))) Risyaalex, Текущее время:
формат "H:i:s" надо тоже побирать, потому что время у вас может быть либо 12 часовым, либо 24 часовы, соответвественно H надо заменить на G, если 24 часовой формат времени. |
| Автор: evilice 22.9.2010, 15:38 | ||||
Я думаю Вашу проблему можно решить как-то так:
Добавлено через 5 минут К стати! Есть ещё один вариант, на случай если плохо знаете SQL
|
| Автор: Risyaalex 22.9.2010, 16:08 | ||
| спасибо, сейчас буду пробовать))) Добавлено @ 16:22
вот этот вариант подошел только $time == date поменяла на $time <= date иначе не хотел работать (все равно у меня скрипт отрабатывает только один раз, до смены данных) спасибо большое) |
| Автор: Muerto 22.9.2010, 17:41 |
| Никогда и не за что не сравнивайте 12:13<13:45 и тп, это вам не помидоры считать! Бед не наберетесь |
| Автор: IgorIV 22.9.2010, 19:08 |
Это ты на что намекаешь? |
| Автор: evilice 22.9.2010, 19:25 |
| Muerto прав!!! В моём примере идёт сравнивание строк! Если Вам, Risyaalex, нужно сравнить на больше/меньше, то результат, возвращаемый из БД, нужно преобразовать к Date или int. |
| Автор: IgorIV 22.9.2010, 21:10 |
| Секунды проверять нет смысла. Крон включается раз в минуту. А если система загружена, то скрипт может отработать и в 2, и в 5 секунд. |
| Автор: evilice 22.9.2010, 21:13 |
| Абсолютно согласен! Если проверка будет проходить 1 раз в минуту, то из проверки достаточно убрать секунды и тогда не надо будет преобразовывать к другим форматам, а просто сравнивать как строку |
| Автор: Muerto 22.9.2010, 21:30 |
| У меня лично такие сравнения не работали корректно... поэтому и не советую... Стоит построить цикл от 00:00 до 24:00 и сравнивать , я уверен что все станет понятно... |