Хобрук: Ваш путь к мастерству в программировании

Попытка использовать обратный отсчет jQuery с отметкой времени UNIX из php

Как следует из названия, я столкнулся с проблемой отображения времени справа и слева до даты окончания.

Я использую этот плагин jquery: http://keith-wood.name/countdown.html

Давайте предположим, что наша временная метка генерируется скриптом PHP следующим образом: $end_date = strtotime($row4['end']); // 2012-05-09 06:00:00 becomes 1336536000

Я использую это ($i используется внутри цикла):

$('.count-<?php echo $i; ?>').countdown({until: new Date(<?php echo $end_date; ?> * 1000), layout: '{dn} days {hnn} hrs {mnn} min {snn} sec', compact: true});

Сейчас здесь 06:21. Вместо ожидаемого результата за 1 день я получаю «1 день 17 часов 04 минуты 21 секунду».

Что мне здесь не хватает?


  • $i — это переменная, которая увеличивается в цикле while. $i = 0; while() { $i++; } Я использую это, потому что хочу отображать обратный отсчет для многих элементов. 08.05.2012
  • Я не хочу вдаваться в подробности API обратного отсчета, но убедились ли вы, что работаете с одним и тем же часовым поясом? желательно GMT везде. 08.05.2012
  • ОК, теперь я установил часовые пояса обратного отсчета PHP и jquery на GMT 0, но все еще есть разница между обратным отсчетом PHP и результатом обратного отсчета jquery. Результат обратного отсчета PHP таков: остался 1 день 1 час, а результат jquery — 1 день 20 часов до 2012-05-09 06:00:00. 08.05.2012

Ответы:


1

Я использую API уже довольно давно, но я не могу понять, что случилось с вашим кодом. Возможно (но только возможно) вы неправильно используете свойство untill.

Мой код, который я обычно использую:

$(function(){
    var countdown = $('#countdown'),
        ts = new Date(<?php echo $date_to * 1000; ?>),
        finished = true;

    if((new Date()) > ts)
    {
        finished = false;
    }

    $('#cool-countdown').countdown({
        timestamp   : ts,
        callback    : function(days, hours, minutes, seconds)
        {
            var message = "";

            message += days + " days, ";
            message += hours + " hours, ";
            message += minutes + " minutes, ";
            message += seconds + " seconds ";

            message = (finished ? "Countdown finished" : "left untill the New Year");

            countdown.html(message);
        }
    });

});

Очевидно, вы должны расширить это, чтобы использовать единственное число.

08.05.2012
  • Привет, спасибо за ваш ответ. Извините, моя проблема не в макете. Я думаю, что сгенерированный результат неверен. Я неправильно делаю преобразование временной метки UNIX в объект даты javascript? 08.05.2012
  • @ggirtsou Возможно, попробуйте умножить $end_date на стороне сервера. Например. - ...Date(<?php echo ($end_date * 1000); ?>)... 08.05.2012
  • ОК, попробовал, но все равно получил 1 день 20 часов для даты окончания 2012-05-09 06:00:00 08.05.2012
  • @ggirtsou Обновил мое объяснение. Пожалуйста, прочитайте это и проверьте, работает ли это для вас. 08.05.2012
  • Новые материалы

    Деревья классификации и регрессии
    Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..