【问题标题】:How to get local timezone in PHP?如何在 PHP 中获取本地时区?
【发布时间】:2012-01-28 18:09:30
【问题描述】:

我正在使用date("D, m/d/Y h:i:s A T") 函数调用来获取当前日期时间,但返回的时间与我在 linux bash 命令中创建日期时得到的时间不同(本地时间在 CST 和php date 函数以 UTC 为单位返回时间)。我尝试使用$timezone = @system("date +%Z",$retval); 获取时区,以尝试使用date_default_timezone_set() 函数设置本地时区。但 CST 似乎不是有效的 timezone_identifier。

简而言之,我只需要获取与本地日期时间相同的日期和时间。

【问题讨论】:

  • 再次,请停止在您的帖子上签名。
  • 好的。我不知道这是被禁止的。

标签: php datetime date time timezone


【解决方案1】:

我想我找到了更好的功能:timezone_name_from_abbr()

【讨论】:

  • 如果这是正确答案,请标记为正确。
【解决方案2】:

使用http://php.net/manual/en/timezones.php中的时区

因此,对于 CST 使用:

<?php
date_default_timezone_set("America/Chicago");

如果您只有时区缩写而不是时区 ID,请使用:

<?php
date_default_timezone_set(timezone_name_from_abbr("CST"));

【讨论】:

  • +1 获得第一。请注意,用户可能不是 Chicago。虽然确实是 CT,但最好使用您的特定语言环境。
  • 问题是我需要以编程方式完成它,因此我无法在每次需要时复制确切有效的 timezone_identifier。我唯一的值是 CST 或 UTC 等等......
  • @StephaneKouakou 我已经添加了示例代码,当你只有时区缩写时
  • 我想我找到了更好的函数:timezone_name_from_abbr()
  • 如果你想从 *nix 服务器获取默认值,timezone_name_from_abbr(exec('date +%Z')) 可以让你免于使用静态条目
【解决方案3】:

虽然系统和 PHP应该在同一时区,但请阅读 date_default_timezone_set() 的文档以手动设置时区。

请注意,CST 不是有效的时区设置。查找您所在位置的valid timezone

【讨论】:

    猜你喜欢
    • 2020-07-23
    • 2023-03-25
    • 2014-07-17
    • 2014-04-01
    • 2013-01-17
    • 2020-11-25
    • 2011-01-20
    • 2017-11-22
    • 2013-01-13
    相关资源
    最近更新 更多