Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Определяем принадлежность времени диапазону на PHP
Определяем принадлежность текущего времени диапазону и если не принадлежит, то получаем время начала диапазона для отправки СМС в разрешенный диапазон.
Время отправки можно задавать в формате GMT, например "2012-10-18 18:00:00 GMT", в UNIXSTAMP или диапазоном в формате 10:00-22:30. Время в этом формате задается по текущему времени сервера, в моем случае по Москве(МСК). Если время начала больше времени конца, то подразумевается что это следующие сутки, например: 16:30-05:22 - до 05:22 сегодня и с 16:30 сегодня до 05:22 завтра.
<?
if(preg_match('/^([0-9]{1,2}:[0-9]{1,2})-([0-9]{1,2}:[0-9]{1,2})$/',$datetime,$ar)){
if($ar[1] == $ar[2]){
$send_datetime='';
}elseif(strtotime($ar[1]) < strtotime($ar[2])){ // нормальный формат 08:00-22:00
if(strtotime('now')>strtotime($ar[2]) ){
$send_datetime=strtotime($ar[1].' +1 day');
}elseif( strtotime('now')<strtotime($ar[1]) ){
$send_datetime=strtotime($ar[1]);
}else{
$send_datetime='';
}
}else/*if(strtotime($ar[1]) > strtotime($ar[2]))*/{ // через полночь 22:00-08:00
if(strtotime('now')>strtotime($ar[1]) || strtotime('now')<strtotime($ar[2])){ // 23:00 | 06:00
$send_datetime='';
}else{
$send_datetime=strtotime($ar[1]);
}
}
}else{
$send_datetime=strtotime($datetime);
if($send_datetime<=strtotime('+5 second')){
$send_datetime='';
}
}
if(empty($send_datetime)){
echo "Отправляю сразу";
}else{
echo "Отложенная отправка на ".date('d-m-Y H:i:s',$send_datetime);
}
?>
.
Прокомментировать/Отблагодарить