簡體   English   中英

基於不同日期的特定時間的PHP消息

[英]PHP message based on a certain time on different days

當我們打開手機以及“關閉”手機時,我試圖使一條消息出現在我的網站上,但我似乎無法正常工作。

這就是我到目前為止所擁有的(這是我的靈感http://codewalkers.com/c/a/Date-Time-Code/Display-message-according-to-hour-of-day/

<?php
//Change message of the day
$open = 'We are open for business';
$closed = 'We are closed';

//Get the current time
$current_time = date(G);
//Get the current day
$current_day = date(I);

if ($current_day == "Monday" && $current_time >= 9 && $current_time <= 21) {
    echo $open;
}

elseif ($current_day == "Monday" && $current_time >= 21 && $current_time <= 9) {
    echo $closed; 
}

if ($current_day == "Tuesday" && $current_time >= 9 && $current_time <= 21) {
    echo $open;
}

elseif ($current_day == "Tuesday" && $current_time >= 21 && $current_time <= 9) {
    echo $closed; 
}

if ($current_day == "Wednesday" && $current_time >= 9 && $current_time <= 21) {
    echo $open;
}

elseif ($current_day == "Wednesday" && $current_time >= 21 && $current_time <= 9) {
    echo $closed; 
}

if ($current_day == "Thursday" && $current_time >= 9 && $current_time <= 21) {
    echo $open;
}

elseif ($current_day == "Thursday" && $current_time >= 21 && $current_time <= 9) {
    echo $closed; 
}

if ($current_day == "Friday" && $current_time >= 9 && $current_time <= 19) {
    echo $open;
}

elseif ($current_day == "Friday" && $current_time >= 19 && $current_time <= 9) {
    echo $closed; 
}

if ($current_day == "Saturday") {
    echo $closed;
}

if ($current_day == "Sunday") {
    echo $closed;
}

?>

我收到此錯誤消息

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in - on line 7 Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in - on line 9

有一些合格的幫助會很不錯的:)

您要求的合格幫助以以下腳本的形式出現:

另請注意,在您的代碼中,您必須使用date('l')-小寫L。

您可以在此處找到可用於date_default_timezone_set()的時區列表: http ://php.net/manual/en/timezones.php

date_default_timezone_set('Europe/Amsterdam'); // set it to the right value

$weAreOpen = areWeOpen(date('l'), date('G'));

if($weAreOpen) {
    echo 'We are open for business';
} else {
    echo 'We are closed';
}

/**
 * Test if we're open for business
 * @param string $day - day of week (ex: Monday)
 * @param string $hour - hour of day (ex: 9)
 * @return bool - true if open interval 
 */
function areWeOpen($day, $hour) {
    $hour = (int)$hour;
    switch($day) {
        case 'Monday':
        case 'Tuesday':
        case 'Wednesday':
        case 'Thursday':
            if($hour >= 9 && $hour < 21) {
                return true;
            }
            break;
        case 'Friday':
            if($hour >= 9 && $hour < 19) {
                return true;
            }
            break;
    }
    return false;
}

因此,這也許可以解決您的問題:

//Get the current time
$current_time = date('G');
//Get the current day
$current_day = date('l');//This is lowercase 'L' and NOT 'I' as in "India".

據我所知,php date()接受字符串作為第一個參數。 而且G和L僅在您之前將它們定義為constants才能正常工作...

編輯

看到包含錯誤消息的更新問題,您可以嘗試以下操作:

ini_set('date.timezone', 'Africa/Lagos');' //somewhere at the top of your code. 

否則,您可以將其放在您的php配置文件中(例如Windows中的php.ini ):

date.timezone = Africa/Lagos

然后,當然,用您選擇的時區替換“非洲/拉各斯”。 有關受支持的時區的列表, 請參見此處

date()需要一個字符串,您的代碼可能會更短:

//Change message of the day
$open = 'We are open for business';
$closed = 'We are closed';

$current_time = date('G'); //Get the current time
$current_day = date('w'); //Get the current day

if ($current_day > 0 && $current_day < 6) //Monday to Friday
{
  if ($current_time >= 9 && $current_time <= 21 && $current_day != 5) //Monday to Thursday between 9 and 21
    echo $open;
  else if ($current_time >= 9 && $current_time <= 19 && $current_day == 5) //Friday between 9 and 19
    echo $open;
  else
    echo $closed;
}
else //Saturday and Sunday
  echo $closed;

關於警告,請打開php.ini並添加此塊(如果沒有):

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Seoul

您也可以只在代碼的開頭添加以下行: date_default_timezone_set('Asia/Seoul');

有關受支持的時區列表,請參見http://php.net/manual/en/timezones.php

嘗試這個

<?php
    date_default_timezone_set('UTC');
    //Change message of the day
    $open = 'We are open for business';
    $closed = 'We are closed';

    //Get the current time
    $current_time = date("G");
    //Get the current day
    $current_day = date("l");

    if ($current_day == "Monday" && $current_time >= 9 && $current_time <= 21) {
        echo $open;
    }

    elseif ($current_day == "Monday" && $current_time >= 21 && $current_time <= 9) {
        echo $closed; 
    }

    if ($current_day == "Tuesday" && $current_time >= 9 && $current_time <= 21) {
        echo $open;
    }

    elseif ($current_day == "Tuesday" && $current_time >= 21 && $current_time <= 9) {
        echo $closed; 
    }

    if ($current_day == "Wednesday" && $current_time >= 9 && $current_time <= 21) {
        echo $open;
    }

    elseif ($current_day == "Wednesday" && $current_time >= 21 && $current_time <= 9) {
        echo $closed; 
    }

    if ($current_day == "Thursday" && $current_time >= 9 && $current_time <= 21) {
        echo $open;
    }

    elseif ($current_day == "Thursday" && $current_time >= 21 && $current_time <= 9) {
        echo $closed; 
    }

    if ($current_day == "Friday" && $current_time >= 9 && $current_time <= 19) {
        echo $open;
    }

    elseif ($current_day == "Friday" && $current_time >= 19 && $current_time <= 9) {
        echo $closed; 
    }

    if ($current_day == "Saturday") {
        echo $closed;
    }

    if ($current_day == "Sunday") {
        echo $closed;
    }

    ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM