12 часовой формат времени в php для сравнения

Регистрация
14 Апр 2013
Сообщения
29
Реакции
10
Помогите разобраться с проблемой. Есть скрипт, который на основе того сколько сейчас времени должен выводить тот или иной контент. Суть в том что сейчас скрипт считывает время в 24 формате и если поставить интервал с 22 00 до 2 00 то скрипт не будет выводить нужную инфу. Подскажите как научить скрипт распознавать 12 часовой формат?

Я слаб в php так что не судите строго .
Вот пример работы скрипта Для просмотра ссылки Войди или Зарегистрируйся
и его кусок с которым мне нужна помощь
PHP:
$s = $row['stime']; // берется из бд
$do = $row['etime']; //берется из бд
// выводим инфу в зависимости от времени работы филиала
    if(date("G") >= $s and date("G") <= $do){
        echo "Прямая трансляция с клуба ";
 
1) Преобразовать 12-часовой формат в 24-часовой
2) Использовать функцию date для вывода pm/am и сравнивать с их учётом
3) Используйте unixtime и не будет проблем.
 
Проблему с интервалом от 22 00 до 2 00 можно решить добавлением маленькой проверки:

PHP:
$s = $row['stime']; // берется из бд
$do = $row['etime']; //берется из бд
if ($do < $s) $do += 24;
// выводим инфу в зависимости от времени работы филиала
    if(date("G") >= $s and date("G") <= $do){
        echo "Прямая трансляция с клуба ";
 
1) Преобразовать 12-часовой формат в 24-часовой
а не подскажите как сделать?

не вариант - в скрпте так же есть вывод времени работы. если время не совпадает - выводится сообщение - простите мы закрыты, мы работаем с 22 00 до 2 00 - дико извиняюсь что не уточнил такой ньюанс :ah:

Добавлено latteo: используй, кнопку редактировать сообщение, если надо что-то добавить к своему посту и тебе еще никто не ответил
 
не вариант - в скрпте так же есть вывод времени работы. если время не совпадает - выводится сообщение - простите мы закрыты, мы работаем с 22 00 до 2 00 - дико извиняюсь что не уточнил такой ньюанс :ah:
Не обязательно использовать одну и туже переменную для вывода и сравнения...
PHP:
$s = $row['stime']; // берется из бд
$do = $row['etime']; //берется из бд
if ($do < $s) $do2 = $do + 24;
else $do2 = $do;
// выводим инфу в зависимости от времени работы филиала
    if(date("G") >= $s and date("G") <= $do2){
        echo "Прямая трансляция с клуба ";

А с 12 часовым форматом всё равно дополнительную проверку придётся использовать, да и непривычен этот формат нашему человеку... В помошь тебе будут date('h') , date('a'). И вообще почитай, что делает date(); Для просмотра ссылки Войди или Зарегистрируйся

3) Используйте unixtime и не будет проблем.
Исходя из задачи задать время работы заведения, такой вариант выглядит более чем странно...
 
спасибо всем за ответы решил задачу. решил не заморачиваться и приьег к совету Для просмотра ссылки Войди или Зарегистрируйся сделал переменную $do с + 24 - тогда все работает и условие верное, а для вывода правильно времени работы сделал просто вторую переменную с -24 - костыль и кривокодость но работает и это главное))
вот пример - вдруг кому то еще пригодится )

PHP:
$do = $row['etime'] + 24;
    $do2 = $do - 24;
    $URL_POTOK = $row['video'];
    // выводим инфу в зависимости от времени работы филиала
    if(date("G") >= $s and date("G") <= $do){
        echo "Прямая трансляция с клуба ХмельноФФ в г.$name <br />";
        //echo $URL_POTOK. '<br>'; //проверям правильно ил скрипт у нас принял ссылку на видео
        echo '<hr>';
        echo '<object data="/flowplayer-3.2.7.swf" height="330px" id="video-352_api" type="application/x-shockwave-flash" width="500px" height="50px">';
        echo '<param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always">';
        echo '<param name="quality" value="high"><param name="cachebusting" value="false">';
        echo '<param name="bgcolor" value="#000000">';
        echo '<param name="flashvars" value="config={&quot;clip&quot;:{&quot;autoPlay&quot;:true,&quot;autoBuffering&quot;:false,&quot;url&quot;:&quot;'.$row['video'].'
        &quot;},&quot;playerId&quot;:&quot;video-352&quot;,&quot;playlist&quot;:
        [{&quot;autoPlay&quot;:true,&quot;autoBuffering&quot;:false,&quot;url&quot;:&quot;
        '.$row['video'].'
        &quot;}]}">';
        echo '</object>';
    //если не совпадает
    }else{
    echo "Извините, в данный момент филиал не работает<br>";
    echo "Филиал клуба г.$name работает с .$s : 00 до .$do2 : 00 ";
    echo '<br>';
    echo '<a href="#"><img src="http://fc05.deviantart.net/fs70/i/2012/130/2/3/livestream_offline_message_by_tastes_like_ciel-d4za5cu.png"
  width="400"  alt="lorem"></a>';
    }
 
Назад
Сверху