Таймер отсчета от определенной даты

Тема в разделе "JavaScript", создана пользователем kosstez, 5 мар 2017.

  1. kosstez

    kosstez

    Регистрация:
    5 мар 2017
    Сообщения:
    0
    Симпатии:
    0
    Подскажите пожалуйста как можно реализовать такой таймер на сайт[​IMG]
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    скопируйте, с сайта с которого вы сделали этот скриншот :Smile:
    ну а вообще тут ничего сложного.
     
  3. Denisok

    Denisok

    Регистрация:
    15 фев 2017
    Сообщения:
    20
    Симпатии:
    0
    Тут даже лучше не JavaScript использовать, а чистый php ибо вдруг у кого скрипты отключены...
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    на php не сделать динамического обновления счётчика.
     
  5. Denisok

    Denisok

    Регистрация:
    15 фев 2017
    Сообщения:
    20
    Симпатии:
    0
    Простенький скрипт:
    <?
    $date = strtotime("1 January 2018"); */Нужная дата*/
    $sec=$date - time();
    $days=floor(($date - time()) /86400);
    $h1=floor(($date - time()) /3600);
    $m1=floor(($date - time()) /60);
    $hour=floor($sec/60/60 - $days*24);
    $hours=floor($sec/60/60);
    $min=floor($sec/60 - $hours*60);

    switch(substr($days, -1)){
    case 1: $o='остался';
    break;
    case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 0: $o='осталось';
    break;}

    switch(substr($days, -2)){
    case 1: $d='день';
    break;
    case 2: case 3: case 4: $d='дня';
    break;
    default: $d='дней';
    }

    switch(substr($hour, -2)) {
    case 1: $h='час';
    break;
    case 2: case 3: case 4: $h='часа';
    break;
    default: $h='часов';
    }

    switch(substr($min, -2)) {
    case 1: $m='минута';
    break;
    case 2: case 3: case 4: $m='минуты';
    break;
    default:$m='минут';
    }
    ?>
    <? if ($sec>0) echo '<strong>До нового года&nbsp;'.$o.':</strong><br/>'; ?>
    <strong><? if ($days>0) echo $days.'&nbsp;'.$d; ?>,
    <? if ($h1>0) echo '&nbsp;'.$hour.'&nbsp;'.$h; ?>
    <? if ($m1>0) echo '&nbsp;и&nbsp;'.$min.'&nbsp;'.$m; ?></strong>
    <strong><? if ($sec<0) echo ("С новым годом друзья!!!"); ?></strong>

    ГДЕ, скрипт должен быть размещен между тегами <body> </body>
     
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    и что он сделает? отрендерит при загрузке и всё, а дальше что? чтобы обновились секунды, обновляй страницу еще раз? ага
     
  7. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    468
    Симпатии:
    137
    $iD, все правильно. на php динамики не будет, но если это типа статуса на форуме/блоге, то там именно хпх реализация без динамики(типа картинка-статус),
    а вот если надо еще активный отсчет что бы был, то php +js
    ну как-то так:
    PHP:
    $date '2017,3,10';
    HTML:
    alert (someDate(<?php echo $date; ?>)); //console.log(someDate(2017, 3, 10)); //Например, сколько прошло дней с 10 марта 2017 года
       
    function someDate(year, month, day) {
        let old = new Date();
        old.setYear(year);
        old.setMonth(month-1, day);
        let now = new Date();
        let diff = now - old;
        return Math.floor(diff/1000/60/60/24);
    }