Остановить обратный отсчет, когда день выходной PHP - PullRequest
0 голосов
/ 03 августа 2020

Я построил на своем сайте таймер обратного отсчета, который отсчитывает количество дней, оставшихся до истечения срока действия объявления, чтобы у клиентов и дизайнеров был эффективный способ отслеживать проект. Когда дизайнеров нет в офисе по выходным, есть ли способ остановить таймер в выходные дни?

<?php
    //start date
    //end date
    //echo date('yy-m-d H:i:s', strtotime($data->created));
    $date2 = date('yy-m-d H:i:s', strtotime($data->created . '+ '. $days));
    //echo '<br>'. $date2;
    $date = gmdate('U', strtotime($date2));
    //echo '<br>'. $date;           
    //echo '<br>' .time();
    $remaining = $date - time();
    //echo '<br>r=' . $remaining ; //get_option('date_format');2020-04-27 14:58:28
    // Get difference between both dates without DST
    $diff = $date - gmdate('U');
    // Days (in last day it will be zero)
    $diff_days = floor($remaining / (24 * 60 * 60));
    // Hours (in the last hour will be zero)
    $diff_hours = floor($remaining % (24 * 60 * 60) / 3600);
    if( $remaining >= 0 )
    {
        $days_remaining = floor($remaining / 86400);
        $hours_remaining = floor(($remaining % 86400) / 3600);
        $minutes_remaining = floor(($remaining % 3600) / 60);
        /*make red on last day*/
        $style = '';
        if($days_remaining < 1 or $days_remaining == 1 && $hours_remaining == 0){
            $style = 'style="color:#fb3a5e;"';
            echo 'Today';
        }
        else
        {
            echo '<span '.$style.'>'. $diff_days .' days and '. $diff_hours .' hours left</span>';
        }
    }
    else
    {
        echo 'Expired.';
    }
?>

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Приведенный ниже код будет соответствовать вашим требованиям.

Примечание. Имейте в виду, что в приведенном выше выражении PHP часовой пояс установлен на GMT, и его необходимо изменить соответствующим образом на требуемый часовой пояс. Также имейте в виду, что любые расхождения часов могут быть связаны с настройками часового пояса / часов вашего сервера.

HTML КОД:

<div id="delcta" style="<?php echo $css ?>">
<p>Time left for Free Next Day Delivery: <span id="countdowntimer"></span></p>
</div>

PHP SCRIPT:

<?php
date_default_timezone_set('GMT');
$currentTime = date('H:i:s');
$currentDay = date('w');
$delTimeStart = '00:00:00';
$delTimeEnd = '24:00:00';
if ($currentTime >= $delTimeStart && $currentTime < $delTimeEnd && $currentDay > 0 && 
$currentDay < 6){
    $css = 'display: block;';
} else {
    $css = 'display: none;';
}
?>
0 голосов
/ 03 августа 2020

Просто пропустите дальнейшую обработку, если она соответствует этому условию.

<?php
if(date("l") != "Sunday" && date("l") != "Saturday")
{
//Process here
}
?>

Вы можете обернуть свой logi c внутрь, и это должно пропустить вычитание времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...