Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как выделить текст исходя из текущего времени?

Как выделить текст исходя из текущего времени?


     10.11.2014    array, php    Все вопросы » Общие вопросы по PHP    1387

вопрос
Здравствуйте уважаемые!
Не могу уже который день допереть как реализовать такую штуку.
Пишу модуль вывода недельной афиши\тв-программы\расписания уроков.
В выводе нужно сделать следующее:
Сегодня
08:00 Доброе утро
09:00 GoogleRules
11:15 ITNews
....

Если сейчас время скажем 8:44 то пусть выделяется тот пункт который находится между 09:00 и 8:00 то есть самый первый из списка.
Информация для работы имеет такой вид:

Array ( [04:20] => Тайные агенты. 13-я серия [05:10] => Салон Вероники. 8-я серия [05:40] => "Саша+Маша". Лучшее [06:05] => Пингвины из "Мадагаскара". 67-я серия [06:30] => Пингвины из "Мадагаскара". 68-я серия [07:00] => Турбо-агент Дадли. 21-я серия [07:30] => Рыцари Тенкай. 12-я серия [07:55] => Кунг-фу Панда: Удивительные легенды. 31-я серия [08:25] => Озорные анимашки. 61-я серия [09:00] => Дом-2. Lite [10:45] => Загадочная история Бенджамина Баттона [14:00] => Универ. 201-я серия - "Любовь-морковь [14:30] => Универ. Новая общага. 21-я серия [15:00] => Универ. Новая общага. 22-я серия [15:30] => Универ. Новая общага. 23-я серия [16:00] => Универ. Новая общага. 24-я серия [16:30] => Универ. Новая общага. 25-я серия [17:00] => Универ. Новая общага. 26-я серия [17:30] => Универ. Новая общага. 27-я серия - "Личное время" [18:00] => Универ. Новая общага. 28-я серия [18:30] => Универ. Новая общага. 29-я серия - "Романтика" [19:00] => Универ. Новая общага. 30-я серия - "Кристина + Антон" [19:30] => Универ. Новая общага. 31-я серия - "Монетка" [20:00] => Физрук. 21-я серия [20:30] => Физрук. 22-я серия [21:00] => Самый лучший фильм [22:35] => Физрук. 21-я серия [23:00] => Дом-2. Город любви [00:00] => "ДОМ-2.После заката". Спецвключение [01:00] => Обещать - не значит жениться [03:30] => Джоуи. 9-я серия - "Джо и Мюзикл" [04:00] => Джоуи. 10-я серия - "Джо и Холостяцкий День Благодарения" [04:25] => Только правда. 4-я серия )


То есть ключи массива являются показателем времени а значение является title


$seychas_vremya = date('H:i',strtotime('now')); //Подправил H:m -> H:i



Пожалуйста помогите реализовать совсем запарился =)
Спасибо заранее.

Ответа пока нет


Отредактировал 10-11-2014, 18:58 - cybernatic
Причина: Подправил H:m -> H:i

4 комментария

vitnet
Эксперт

vitnet - 10 ноября 2014 15:37 -

Пробуйте
<?php

@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', true);
@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE);

$a = array ( "[04:20]" => "Тайные агенты. 13-я серия", "[05:10]" => "Салон Вероники. 8-я серия", "[05:40]" => "\"Саша+Маша\". Лучшее", "[06:05]" => "Пингвины из \"Мадагаскара\". 67-я серия", "[06:30]" => "Пингвины из \"Мадагаскара\". 68-я серия", "[07:00]" => "Турбо-агент Дадли. 21-я серия", "[07:30]" => "Рыцари Тенкай. 12-я серия", "[07:55]" => "Кунг-фу Панда: Удивительные легенды. 31-я серия", "[08:25]" => "Озорные анимашки. 61-я серия", "[09:00]" => "Дом-2. Lite", "[10:45]" => "Загадочная история Бенджамина Баттона", "[14:00]" => "Универ. 201-я серия - \"Любовь-морковь\"", "[14:30]" => "Универ. Новая общага. 21-я серия", "[15:00]" => "Универ. Новая общага. 22-я серия", "[15:30]" => "Универ. Новая общага. 23-я серия", "[16:00]" => "Универ. Новая общага. 24-я серия", "[16:30]" => "Универ. Новая общага. 25-я серия", "[17:00]" => "Универ. Новая общага. 26-я серия", "[17:30]" => "Универ. Новая общага. 27-я серия - \"Личное время\"", "[18:00]" => "Универ. Новая общага. 28-я серия", "[18:30]" => "Универ. Новая общага. 29-я серия - \"Романтика\"", "[19:00]" => "Универ. Новая общага. 30-я серия - \"Кристина + Антон\"", "[19:30]" => "Универ. Новая общага. 31-я серия - \"Монетка\"", "[20:00]" => "Физрук. 21-я серия", "[20:30]" => "Физрук. 22-я серия", "[21:00]" => "Самый лучший фильм", "[22:35]" => "Физрук. 21-я серия", "[23:00]" => "Дом-2. Город любви", "[00:00]" => "\"ДОМ-2.После заката\". Спецвключение", "[01:00]" => "Обещать - не значит жениться", "[03:30]" => "Джоуи. 9-я серия - \"Джо и Мюзикл\"", "[04:00]" => "Джоуи. 10-я серия - \"Джо и Холостяцкий День Благодарения\"", "[04:25]" => "Только правда. 4-я серия" );

$b = date('H:i', strtotime('now'));

foreach ($a as $k => $v) {
    $k = str_replace( '[', '', $k );
    $k = str_replace( ']', '', $k );

    if( $b <= $k ) {
        echo $k . ': ' . $v . '<br />';
        break;
    }
}

?>

cybernatic
Эксперт

cybernatic - 10 ноября 2014 18:58 -

Здравствуйте!
Видимо Ваш пример неправильно функционирует.
Необходимо просто вывести афишу и выделить то что сейчас идет на экране\урок идет и так далее..
Временем является ключ массива.Там не надо str_replace делать вообще.

Просто ищу не могу допереть (простите за путаницу в голове хаос творится) как можно указать временные промежутки из этого массива использовать.

Конечная цель ВЫДЕЛИТЬ то что сейчас актуально (по времени)

vitnet
Эксперт

vitnet - 11 ноября 2014 11:28 -

....

$b = date('H:i', strtotime('now'));
$c = array("<b>", "</b>");

foreach ($a as $k => $v) {
    $k = str_replace( '[', '', $k );
    $k = str_replace( ']', '', $k );

    if( $b <= $k ) {
        echo $k . ': ' . $c[0] . $v . $c[1] . '<br />';
        unset($c);
        //break;
    } else {
        echo $k . ': ' . $v . '<br />';
    }
}

cybernatic
Эксперт

cybernatic - 11 ноября 2014 12:01 -

Красаучег :-)
То что надо, только чуууть чуть неверно обводит вот результат

04:20: Тайные агенты. 13-я серия
05:10: Салон Вероники. 8-я серия
05:40: "Саша+Маша". Лучшее
06:05: Пингвины из "Мадагаскара". 67-я серия
06:30: Пингвины из "Мадагаскара". 68-я серия
07:00: Турбо-агент Дадли. 21-я серия
07:30: Рыцари Тенкай. 12-я серия
07:55: Кунг-фу Панда: Удивительные легенды. 31-я серия
08:25: Озорные анимашки. 61-я серия
09:00: Дом-2. Lite
10:45: Загадочная история Бенджамина Баттона <--- А надо было его так как время 13:02
--->>>14:00: Универ. 201-я серия - "Любовь-морковь  <!---- Он выделил
14:30: Универ. Новая общага. 21-я серия
15:00: Универ. Новая общага. 22-я серия
15:30: Универ. Новая общага. 23-я серия
16:00: Универ. Новая общага. 24-я серия
16:30: Универ. Новая общага. 25-я серия
17:00: Универ. Новая общага. 26-я серия
17:30: Универ. Новая общага. 27-я серия - "Личное время"
18:00: Универ. Новая общага. 28-я серия
18:30: Универ. Новая общага. 29-я серия - "Романтика"
19:00: Универ. Новая общага. 30-я серия - "Кристина + Антон"
19:30: Универ. Новая общага. 31-я серия - "Монетка"
20:00: Физрук. 21-я серия
20:30: Физрук. 22-я серия
21:00: Самый лучший фильм
22:35: Физрук. 21-я серия
23:00: Дом-2. Город любви

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх