Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   option и время (https://javascript.ru/forum/jquery/63831-option-i-vremya.html)

Rasy 02.07.2016 14:45

del

laimas 02.07.2016 14:47

Не правильно будет работать, в сутках всего 24 часа.

Step48_rus 02.07.2016 15:19

и что же тогда делать?

laimas 02.07.2016 15:30

Цитата:

Сообщение от Step48_rus
и что же тогда делать?

Это зависит от того чего требуется.

Rasy 02.07.2016 15:40

Цитата:

Сообщение от Step48_rus
и что же тогда делать?

Как говорил Лао-цзы - "Все сразу, но не будет"

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>

<select name="" id="set_time">
  <option value="0">выбрать</option>
  <option value="-2">-2 часа</option>
  <option value="-1">-1 часа</option>
  <option value="0">0 часов</option>
  <option value="+1">+1 час</option>
  <option value="+2">+2 часа</option>
</select>
<div id="the_program">
  <p>6:40 программа 1</p>
  <p>7:40 программа 2</p>
  <p>8:40 программа 3</p>
  <p>9:40 программа 4</p>
  <p>10:40 программа 5</p>
  <p>11:40 программа 6</p>
  <p>12:40 программа 7</p>
  <p>13:40 программа 8</p>
  <p>14:40 программа 9</p>
  <p>16:40 программа 10</p>
  <p>17:40 программа 11</p>
  <p>18:40 программа 12</p>
  <p>19:40 программа 13</p>
  <p>20:40 программа 14</p>
  <p>21:40 программа 15</p>
  <p>22:40 программа 16</p>
  <p>23:40 программа 17</p>
  <p>24:40 программа 18</p>
</div>

<script>
$(function() {
  var
    $set_time = $('#set_time'),
    $the_program = $('#the_program'),
    number,
    separator,
    hour,
    size,
    min_and_text;

    $set_time.change(function() {
      number = $(this).val();
      $the_program.children().each(function(i, el) {
        separator = $(el).text().indexOf(':'),
        hour = $(el).text().slice('0', separator),
        min_and_text = $(el).text().slice(separator);

        size = +number + +hour < 0 ? 24 + +number + +hour :
            +number + +hour >= 24 ? +number + +hour - 24
            : +number + +hour;
        $(el).text(size + min_and_text);

      });
    });
});

</script>

</body>

Step48_rus 02.07.2016 15:41

тут скорее всего все таки в php Делать придется,в общем смотри,на сайте есть сайдбар,где выводится программа передач, в ней указано время по МСК, надо что бы при выборе различных часовых поясов,менялось только время, ибо у них канал работает по мск...

Step48_rus 02.07.2016 15:42

Смотри,если выбираешь вначале -2 а потом -1, то в сумме получается -3, а не -1

laimas 02.07.2016 15:54

Цитата:

Сообщение от Step48_rus
если выбираешь вначале -2 а потом -1, то в сумме получается -3, а не -1

Вы считаете, что я для это опшен самый подходящий элемент?

laimas 02.07.2016 15:55

Цитата:

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

Для этого нужно работать не со временем, а с датой/временем.

destus 02.07.2016 16:03

Step48_rus,
Вот небольшой набросок
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script>
<select>
    <option>Выбрать</option>
    <option value="-2">-2 часа</option>
    <option value="-1">-1 час</option>
    <option value="0">0</option>
    <option value="+1">+1 час</option>
    <option value="+2">+2 часа</option>
</select>
<div class="live">
    <p>11:40 программа 1</p>
    <p>12:40 программа 2</p>
    <p>13:40 программа 3</p>
    <p>23:40 программа 4</p>
</div>
<script>
    let orig = [...document.querySelectorAll(".live>p")].map(el => el.cloneNode(true));
    document.querySelector("select").addEventListener("change", e => {
        for (let p of document.querySelectorAll(".live>p").entries()){
            p[1].textContent = orig[p[0]].textContent.replace(/\d{1,2}\:\d{1,2}/, match => {
                        return moment(match, "HH:mm").add(e.target.value, "hour").format("HH:mm");
                    });
        };
    });
</script>


Часовой пояс GMT +3, время: 16:23.