gpt4 book ai didi

php - 基于时间的 PHP 问候语

转载 作者:行者123 更新时间:2023-12-03 06:10:45 26 4
gpt4 key购买 nike

我有一个简单的基于 PHP 时间的消息脚本(基于用户本地时间)。它没有像我想象的那样工作,不太确定出了什么问题。

我基本上在这些时候寻找这些消息:

  1. 凌晨 3 点 - 早上 6 点 - 消息 1
  2. 上午 6 点 - 中午 12 点 - 消息 2
  3. 中午 12 点 - 下午 3 点 - 消息 3
  4. 下午 3 点 - 下午 6 点 - 消息 4
  5. 下午 6 点 - 晚上 8 点 - 消息 5
  6. 晚上 8 点 - 晚上 10 点 - 消息 6
  7. 晚上 10 点 - 上午 12 点 - 消息 7
  8. 上午 12 点 - 凌晨 3 点 - 消息 8

我已经有了这个代码:

    <?php

$b = time();

$hour = date("g", $b);
$m = date("A", $b);

if ($m == "AM") {
if ($hour == 12) {
echo "Good Evening!";
} elseif ($hour < 4) {
echo "Good Evening!";
} elseif ($hour > 3) {
echo "Good Morning!";
}
}

elseif ($m == "PM") {
if ($hour == 12) {
echo "Good Afternoon!";
} elseif ($hour < 6) {
echo "Good Afternoon!";
} elseif ($hour > 5) {
echo "Good Evening!";
}
}

?>

这没关系,但似乎比我预期的早了一个小时,我假设这是因为它正在读取 GMT,而英国目前处于 BST (GMT+1)。如果无法解决这个问题,那不是问题,因为我可以相应地调整时间。当我尝试添加需要消息的额外时间时,我得到了一些奇怪的结果。我是 PHP 新手,所以任何帮助都会很棒。

谢谢

最佳答案

您需要设置默认时区。这是直接来自 PHP 文档的方便脚本...

date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
echo 'Script timezone differs from ini-set timezone.';
} else {
echo 'Script timezone and ini-set timezone match.';
}

所有支持的时区列表:http://www.php.net/manual/en/timezones.europe.php

如果我没记错的话,你只需要运行一次即可设置时区。

关于php - 基于时间的 PHP 问候语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com