Настройка приветствия в зависимости от времени пользователя (Доброе утро, добрый день…) - PullRequest
18 голосов
/ 02 февраля 2010

Может ли кто-нибудь экстраполировать, как реализовать базовый «добрый вечер» или «доброе утро», основываясь на настройке времени пользователя?

Возможно, PHP извлечет серверное время, но я хочу поприветствовать посетителя сайта соответствующим основанным на времени приветствием, которое учитывает их время суток.

Е.Г .: Доброе утро, спокойной ночи, добрый день.

Ответы [ 5 ]

32 голосов
/ 02 февраля 2010

На основе .getHours() объекта даты. При использовании объекта Date в javascript будет автоматически использоваться локальное время пользователя, а не время сервера:

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

Пара условных проверок, и вы в деле. Например, следующий пример очень прост и понятен:

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);

Сейчас здесь 2:56, поэтому я вижу "Mornin 'Sunshine!" когда я запускаю это. С помощью этой онлайн-демонстрации вы можете проверить свое местное время: http://jsbin.com/aguyo3/edit

16 голосов
/ 14 декабря 2013
<?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";
}
?>

Для получения дополнительной информации о дате см. function.date . Надеюсь, это поможет.

2 голосов
/ 04 сентября 2016
<?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";
    }
    ?>
1 голос
/ 02 октября 2016
$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 голосов
/ 11 мая 2019
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;}

Этот код основан на JavaScript, надеюсь, это поможет вам.

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