Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для rozmakc
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 74

Временной интервал

06.09.2016, 04:46. Показов 5016. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, подскажите как реализовать такое:

есть промежуток времени например с 17:00 до 04:00
мне нужно выполнить код если текущее время попадает под промежуток времени.

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

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$jobIn = 17; 
$jobOut = 4;
 
$nowdate = date("H:i:s");
$nowdate_arr = explode(":",$nowdate);
$timeNow = mktime($nowdate_arr[0], $nowdate_arr[1], $nowdate_arr[2], 0, 0, 0);
 
                                            
$jobIn =  mktime($jobIn, 0, 0, 0, 0, 0);   
$jobOut =  mktime($jobOut, 0, 0, 0, 0, 0);  
 
 
if($jobIn >= $timeNow && $jobOut > $timeNow){
    echo 'YES';
}else echo 'NOT';
кстати нужный промежуток хранится в БД именно так - 17 и 4, так как не знаю как лучше

подскажите как лучше реализовать может в БД писать по другому?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.09.2016, 04:46
Ответы с готовыми решениями:

Php временной интервал
Здравствуйте, нужно решить вот что, Если проходит определенный временной промежуток, то выполнить какое то условие, если проходит другой...

Временной диапазон
Добрый день. Помогите пожалуйста реализовать следующее: нужно сделать проверку на временной диапазон, т.е условие, если текущее время не...

Временной промежуток
Всем доброго дня! Каким макаром можно проверить принадлежность к временному промежутку абсолютно? То есть, например, диапазон от 8:30...

6
 Аватар для SergioO
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
06.09.2016, 08:38
Цитата Сообщение от rozmakc Посмотреть сообщение
но начинается косяк когда время переходит за полночь
сделайте два промежутка - с 17:00:00 до 23:59:59 и с 00:00:00 до 04:00:00 включительно
Цитата Сообщение от rozmakc Посмотреть сообщение
кстати нужный промежуток хранится в БД
может написать процедуру в самой СУБД
а вообще-то планировщик cron для этого используется
0
 Аватар для rozmakc
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 74
06.09.2016, 17:32  [ТС]
Цитата Сообщение от SergioO Посмотреть сообщение
сделайте два промежутка - с 17:00:00 до 23:59:59 и с 00:00:00 до 04:00:00 включительно
Каким образом подскажите? Промежуток я не знаю, записывает его другой скрипт, то есть может быть например с 01:00 до 04:00 и как сделать 2 промежутка? допереть не могу

Цитата Сообщение от SergioO Посмотреть сообщение
может написать процедуру в самой СУБД
а вообще-то планировщик cron для этого используется
здесь тоже не понятно, какую процедуру? и как?
и каким образом тут можно крон использовать?

Добавлено через 27 минут
Ваша идея про 2 промежутка помогла, только чуть по другому, сравнивал если текущее время до 12 то по одному, если после то по другому, а вот про

Цитата Сообщение от rozmakc Посмотреть сообщение
процедуру в самой СУБД
все равно не ясно

вот код может кто посоветует что то лучше, или кому то пригодитcя:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$jobIn = 17;
$jobOut = 4; 
 
$time = time() ;
 
$nowdate = date("H:i:s", $time);
$nowdate_arr = explode(":",$nowdate);
$timeNow = mktime($nowdate_arr[0], $nowdate_arr[1], $nowdate_arr[2], 0, 0, 0);
 
$jobIn =  mktime($jobIn, 0, 0, 0, 0, 0);
$jobOut =  mktime($jobOut, 0, 0, 0, 0, 0);
 
$timeNowH = date("G", $time);
 
if($timeNowH >=12){
 
    if($timeNow >= $jobIn && $jobOut < $timeNow){
        
        echo 'job';
 
    }else{
        echo 'NOT';
    }
 
}elseif($timeNowH < 12){
    
    if($timeNow < $jobIn && $jobOut > $timeNow){
        
        echo 'job';
 
    }else{
        echo 'NOT';
    }   
    
}
0
 Аватар для SergioO
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
07.09.2016, 20:29
rozmakc, у вас привилегия PROCESS для СУБД есть или вы на виртуальном хосте? СУБД MySQL? данные по расписанию в БД изменять надо?
0
 Аватар для rozmakc
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 74
08.09.2016, 10:25  [ТС]
SergioO, Денвер, да MySQL, не не нужно...

Добавлено через 11 минут
блин не работает мое решение...опять ломаю голову ХЕЛП!!!
0
 Аватар для Зверушь
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
08.09.2016, 12:30
Да вроде все просто.
Бегло проверил, вроде работает. Перепроверьте, чтобы убедится.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$jobIn = 17; 
$jobOut = 4;
 
var_dump(is_in_hour_range($jobIn, $jobOut));
 
function is_in_hour_range($in, $out) {
    $out += 24;
    $now = date("H");
    if ($now < $in) {
        $now += 24; 
    }
    if ($now >= $in && $now <= $out) {
        return true;
    }
    return false;
}
0
0 / 0 / 0
Регистрация: 02.08.2018
Сообщений: 1
03.08.2018, 00:04
да, может кому и пригодится,
с условием 24 круглых часов (без минут)

PHP
1
2
$allowedRange = ($start > $finish) ? array_merge(range($start, 23), range(0, $finish)) : range($start, $finish);
return in_array(date('G'), $allowedRange);
сорри за некропост, но такое выше написали, что не удержался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2018, 00:04
Помогаю со студенческими работами здесь

Создание временной страницы
есть страница index.php, в ней в выпадающих списках выбираются данные, нужно что-бы создалась новая временная страница с данными которые...

пути записаны во временной директории
проблема вот в чем в бд в пути записывается вот так /home/users1/p/.../tmp/phppUeho9 а надо чтоб прописался нормальный путь в папаке...

Считывание фаила их временной директории
Хочу добиться того чтобы фаил отображался из временной директории. как добиться? if(isset($_POST) and $_SERVER == &quot;POST&quot;)...

Цикл foreach с добавлением временной метки microtime()
Задача: на каждую итерацию цикла foreach добавлять к строке вывода временную метку microtime(). $array = array( 'bbbb', ...

Перевод времени согласно временной зоне пользователя?
Добрый вечер!Подскажите пожалуйста,как можно реализовать перевод времени согласно временной зоне пользователя?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru