Счетная система с использованием PHP - PullRequest
1 голос
/ 06 февраля 2020

Когда я добавляю события в свою базу данных, у меня есть поле для даты начала и окончания. Поэтому, если я сохраню событие в моей базе данных с датой начала в 8 часов и 25 минут, вывод на странице событий будет 116 дней 7 часов 33 минуты. Проблема в том, почему я получил эти 116 дней ?? Мой код такой:

Javascript код счетчика:

if ($(".counter-widget").length > 0) {
    var countCurrent = $(".counter-widget").attr("data-countDate");
    $(".countdown").downCount({
        date: countCurrent ,
        offset: 0
    });
}

Страница события:

<div class="box-widget counter-widget gradient-bg" data-countDate="06/02/2020">
    <div class="countdown fl-wrap">
        <div class="countdown-item">
            <span class="days rot">00</span>
            <p>days</p>
        </div>
        <div class="countdown-item">
            <span class="hours rot">08</span>
            <p>hours</p>
        </div>
        <div class="countdown-item no-dec">
            <span class="minutes rot2">25</span>
            <p>minutes </p>
        </div>
        <div class="countdown-item-seconds">
            <span class="seconds rot2">00</span>
        </div>
    </div>
</div>

Другой Javascript код для обратного отсчета следующий:

(function($){$.fn.downCount=function(options,callback){var settings=$.extend({date:null,offset:null},options);if(!settings.date){$.error('Date is not defined.')}if(!Date.parse(settings.date)){$.error('Incorrect date format, it should look like this, 12/24/2012 12:00:00.')}var container=this;var currentDate=function(){var date=new Date();var utc=date.getTime()+(date.getTimezoneOffset()*60000);var new_date=new Date(utc+(3600000*settings.offset));return new_date};function countdown(){var target_date=new Date(settings.date),current_date=currentDate();var difference=target_date-current_date;if(difference<0){clearInterval(interval);if(callback&&typeof callback==='function')callback();return}var _second=1000,_minute=_second*60,_hour=_minute*60,_day=_hour*24;var days=Math.floor(difference/_day),hours=Math.floor((difference%_day)/_hour),minutes=Math.floor((difference%_hour)/_minute),seconds=Math.floor((difference%_minute)/_second);days=(String(days).length>=2)?days:'0'+days;hours=(String(hours).length>=2)?hours:'0'+hours;minutes=(String(minutes).length>=2)?minutes:'0'+minutes;seconds=(String(seconds).length>=2)?seconds:'0'+seconds;var ref_days=(days===1)?'day':'days',ref_hours=(hours===1)?'hour':'hours',ref_minutes=(minutes===1)?'minute':'minutes',ref_seconds=(seconds===1)?'second':'seconds';container.find('.days').text(days);container.find('.hours').text(hours);container.find('.minutes').text(minutes);container.find('.seconds').text(seconds);container.find('.days_ref').text(ref_days);container.find('.hours_ref').text(ref_hours);container.find('.minutes_ref').text(ref_minutes);container.find('.seconds_ref').text(ref_seconds)};var interval=setInterval(countdown,1000)}})(jQuery);

Выходные данные на странице события будут с этим кодом: 116 дней 7 часов 33 минуты 13 сек c. Как? Где я не прав? Нужно ли мне добавлять часовой пояс к моему коду или как?

Спасибо за все

1 Ответ

0 голосов
/ 06 февраля 2020

Проблема была решена с помощью PHP Сценарий:

Решенный код:

<?php
    $rem = strtotime($result->EventStartEnd) - time();
    $day = floor($rem / 86400);
    $hr  = floor(($rem % 86400) / 3600);
    $min = floor(($rem % 3600) / 60);
    $sec = ($rem % 60);
    if($day) echo "$day Days ";
    if($hr) echo "$hr Hours ";
    if($min) echo "$min Minutes ";
    if($sec) echo "$sec Seconds ";
    echo "Remaining...";
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...