在特定时间之前和之后显示消息

时间:2016-06-03 14:26:19

标签: php date time

目前我正在网上商店工作,该网上商店在同一天17:00之前发出订单。在成功或感谢页面上,我希望在17:00之前,17:00之后和周末之前发送消息。所以有三条消息。

我现在正在尝试使用PHP:

<?php
            //Show message
            $before_17 = "Order received before 17:00, will ship today.";
            $after_17="Order placed after 17:00, will ship tomorrow.";
            $weekend = "It's weekend, order will be shipped on Monday.";

            //Time & Day
            $current_time = date(H);
            $current_day = date(D);

            //Saturday
            if ($current_day == Sat){
            echo $weekend;
            }

            //Sunday
            elseif ($current_day == Sun){
            echo $weekend;
            }

            //Weekdays > 17
            elseif ($current_time > 17){
            echo $after_17;
            }

            //Weekdays < 17
            elseif($current_time < 17){
            echo $before_17;
            }

            else{
            echo 'Niks';
            }
        ?>

我希望这应该可以解决问题,但页面仍然会在17:00之后显示$ before_17。难道我做错了什么?

3 个答案:

答案 0 :(得分:0)

EDIT; 我刚刚注意到另一个问题。你应该使用if ($current_time >= 17)(不只是大于),否则它将在18小时后生效。

另外你应该在date()中使用引号!试试date('H')&amp; date('D')代替date(H)date(D)。当天的报价比较if ($current_day === 'Sun')

如果失败,你应该echo date('H');确保服务器上的时间设置正确。

答案 1 :(得分:0)

1 - 在date()中使用引号。比如date('D')

2-在if中比较字符串时使用引号。比如if($current_day=='Sun')

答案 2 :(得分:0)

这可能与时区问题有关

我遇到了同样的错误($ current_time是16,即使它应该是17)

检查此link以获取更多信息