根据用户的时间设置问候语(早上好,下午好...)

2022-08-30 18:10:09

任何人都可以根据用户的时间设置推断出如何实现基本的“晚安”或“早上好”?

也许PHP会获取服务器时间,但我希望用基于时间的适当问候语来问候网站访问者,考虑他们一天中的时间。

例如:早上好,晚上好,下午好。


答案 1

基于日期对象。使用javascript的Date对象将自动使用用户的本地时间,而不是服务器时间:.getHours()

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


答案 2
<?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";
}
?>

有关日期的详细信息,请参阅函数.date。我希望这会有所帮助。