Setting a greeting based on user's time (Good morning, good afternoon…)

后端 未结 6 1961
孤街浪徒
孤街浪徒 2021-02-02 11:13

Can anyone extrapolate on how to implement a basic \"good evening\" or \"good morning\" based on the user\'s time setting?

Perhaps PHP will fetch the server time, but I

相关标签:
6条回答
  • 2021-02-02 11:25

    Base it on .getHours() of the date object. Using javascript's Date object will automatically use the user's local time, rather than the server-time:

    var now = new Date();
    alert( now.getHours() );
    

    A couple conditional checks, and you're in business. For instance, the following is a very simple and easy-to-understand example:

    var now = new Date();
    var hrs = now.getHours();
    var msg = "";
    
    if (hrs >  0) msg = "Mornin' Sunshine!"; // REALLY early
    if (hrs >  6) msg = "Good morning";      // After 6am
    if (hrs > 12) msg = "Good afternoon";    // After 12pm
    if (hrs > 17) msg = "Good evening";      // After 5pm
    if (hrs > 22) msg = "Go to bed!";        // After 10pm
    
    alert(msg);
    

    It's currently 2:56am here, so I see "Mornin' Sunshine!" when I run this. You can test your own local time with this online demo: http://jsbin.com/aguyo3/edit

    0 讨论(0)
  • 2021-02-02 11:25
    <?php
    // I'm India so my timezone is Asia/Calcutta
    date_default_timezone_set('Asia/Calcutta');
    
    // 24-hour format of an hour without leading zeros (0 through 23)
    $Hour = date('G');
    
    if ( $Hour >= 5 && $Hour <= 11 ) {
        echo "Good Morning";
    } else if ( $Hour >= 12 && $Hour <= 18 ) {
        echo "Good Afternoon";
    } else if ( $Hour >= 19 || $Hour <= 4 ) {
        echo "Good Evening";
    }
    ?>
    

    For more information about date see function.date. I Hope this will help.

    0 讨论(0)
  • 2021-02-02 11:25
    <?php
        /* This sets the $time variable to the current hour in the 24 hour clock format */
        $time = date("H");
        /* Set the $timezone variable to become the current timezone */
        $timezone = date("e");
        /* If the time is less than 1200 hours, show good morning */
        if ($time < "12") {
            echo "Good morning";
        } else
        /* If the time is grater than or equal to 1200 hours, but less than 1700 hours, so good afternoon */
        if ($time >= "12" && $time < "17") {
            echo "Good afternoon";
        } else
        /* Should the time be between or equal to 1700 and 1900 hours, show good evening */
        if ($time >= "17" && $time < "19") {
            echo "Good evening";
        } else
        /* Finally, show good night if the time is greater than or equal to 1900 hours */
        if ($time >= "19") {
            echo "Good night";
        }
        ?>
    
    0 讨论(0)
  • 2021-02-02 11:38
    const now = new Date().getHours();
    
    switch (true) {
        case (now<=12): console.log("Good Morning");break;
        case (now>12 && now<16): console.log("Good Afternnon");break;
        case (now>=16 && now<20): console.log("Good Evening");break;
        case (now>=20 && now<=24): console.log("Good Night");break;}
    

    This code is based on JavaScript, Hope this will help you.

    0 讨论(0)
  • 2021-02-02 11:49
    $hour      = date('H');
    
    if ($hour >= 20) {
        $greetings = "Good Night";
    } elseif ($hour > 17) {
       $greetings = "Good Evening";
    } elseif ($hour > 11) {
        $greetings = "Good Afternoon";
    } elseif ($hour < 12) {
       $greetings = "Good Morning";
    }
    echo $greetings;
    
    0 讨论(0)
  • 2021-02-02 11:50
    function greeting_msg() {
        $hour = date('H');
        if ($hour >= 18) {
           $greeting = "Good Evening";
        } elseif ($hour >= 12) {
            $greeting = "Good Afternoon";
        } elseif ($hour < 12) {
           $greeting = "Good Morning";
        }
        return $greeting;
    }
    
    0 讨论(0)
提交回复
热议问题