根据日期和时间回显条件文本

Echo conditional text based on day and time

我有一些文本要根据一天中的时间和星期几回显。

星期一应该说在 13.00 到 17.00 之间:We zijn vandaag bereikbaar tot 17.00 uur。

星期二到星期五应该和上面说的一样,但是从 09.00 到 17.00。

周一 13:00 之前和周二至周五 9:00 以及 17:00 之后和周末应该说:We zijn momenteel gesloten。 Stuur en e-mail en we nemen z.s.m。联系我遇到了 op.

这是我为它创建的简码 (Wordpress):

date_default_timezone_set('Europe/Amsterdam');

function customer_service_phone (){
    $dateOfWeek = date('w');
    $time = date('H');
    if ($dateOfWeek == '1' && $time > '13' && $time < '17') {
        $availability = "We zijn vandaag bereikbaar tot 17.00 uur.";
    } elseif ($dateOfWeek > '1' && $dateOfWeek < '6' && $time > '9' && $time < '17'){
        $availability = "We zijn vandaag bereikbaar tot 17.00 uur.";
    } else {
        $availability = "We zijn momenteel gesloten. Stuur een e-mail en we nemen z.s.m. contact met je op.";
    }
    echo esc_attr( $availability );
}
add_shortcode ( 'availability_phone', 'customer_service_phone' );

这段代码并不完全有效。因为在 17.00 之后它仍然显示 17.00 之前的文本。 会是什么呢?我的服务器时间与我的时区是正确的,而且 Wordpress 设置中的时间也是相同的。时区是阿姆斯特丹。

希望有人能帮我解决这个问题。任何帮助,将不胜感激。 对不起,如果我解释得不够清楚。

亲切的问候, 瓦斯科

试试下面的代码。

function customer_service_phone (){
    $dateOfWeek = date('N');
    $time = date('H');
    if ($dateOfWeek == '1' && $time >= '13' && $time < '17') {
        $availability = "We zijn vandaag bereikbaar tot 17.00 uur.";
    } elseif ($dateOfWeek > '1' && $dateOfWeek < '6' && $time >= '09' && $time < '17'){
        $availability = "We zijn vandaag bereikbaar tot 17.00 uur.";
    } else {
        $availability = "We zijn momenteel gesloten. Stuur een e-mail en we nemen z.s.m. contact met je op.";
    }
    echo esc_attr( $availability );
}
add_shortcode ( 'availability_phone', 'customer_service_phone' );