【问题标题】:How to set php timezone [closed]如何设置php时区[关闭]
【发布时间】:2013-05-17 15:22:56
【问题描述】:

我已经尝试解决这个问题几个小时,但没有任何更大的成功。我需要这个工作

(我已经设法使用普通的php函数修复了另一个函数(虽然没有使用{}标签):

$mytime = $utc_str = gmdate("M d Y H:i:s", time());
$utc = strtotime($utc_str); )

但它不允许我在 {} 标签内设置正常的 gmdate。

这是不错的,但 for 格式错误。

{
    var $dateFormat = 'Y-m-d g:i:s A';
}

结果:2013-05-17 8:52:38 AM(我需要有时区:gmt +01)这使得时间16:52:38 PM 改为。

我需要的是一种可以切换 gmt 并与 var $dateFormat = '' 一起使用的格式

编辑:我正在处理的代码:

class Guestbook{

   var $messageDir = 'messages';

   var $dateFormat = 'Y-m-d g:i:s A';   - This is where I need (GTM +01 timezone)
   var $itemsPerPage = 5;
   var $messageList;

   function processGuestbook(){
   if (isset($_POST['submit'])) {
      $this->insertMessage();
   }

   $page = isset($_GET['page']) ? $_GET['page'] : 1;

   $this->displayGuestbook($page);
}

【问题讨论】:

  • 什么是“{}标签”?! var 关键字在 PHP 中的作用是什么?
  • 这是我正在做的,需要时间格式:{ var $messageDir = 'messages'; var $dateFormat = 'Y-m-d g:i:s A';变量 $itemsPerPage = 5;变量 $messageList;函数 processGuestbook(){ if (isset($_POST['submit'])) { $this->insertMessage(); } $page = isset($_GET['page']) ? $_GET['page'] : 1; $this->displayGuestbook($page); }
  • var 在 php 中声明类成员变量,但 iirc 已被弃用了一段时间 - 无论哪种方式看起来他都没有尝试在这里声明类成员变量
  • 我已经测试了很多功能,这是其中一个不适用于这个项目的功能。

标签: php timezone


【解决方案1】:

php_date_default_timezone is the incantation 你正在寻找,你也可以使用 date.timezone .ini 设置。为了让每只猫都有不止一种剥皮方法,如果您使用的是 DateTime 对象,也可以使用DateTime::setTimezone

【讨论】:

  • var $dateFormat = 'php_date_default_timezone Y-m-d g:i:s A';结果: p09p_17am31America/Denver_17America/Denverfam000000Friday31_313605America/Denver13620135America/Denver 2013-05-17 9:36:23 AM
  • 我已经在 php.net 上,问题是在这里使用正确的函数。我不是在问资源,我需要解决方案,因为我不会在这方面取得更好的成功。
  • @Felix - 为什么要将函数名放在格式字符串中?这很愚蠢。像调用其他函数一样调用该函数。 hd1提供的链接中有示例。
  • @Matt LOLZ,我已经测试了很多组合。这是做到这一点的唯一方法。如果无法定义,您将如何应用这些信息?
  • @Felix on SO,懒惰是行不通的,我们为您提供解决问题的信息,就像我在上面所做的那样,这取决于您。
【解决方案2】:

如果您想获取特定区域的当前本地时间,请设置区域并使用date 函数

date_default_timezone_set('America/Denver');
$s = date("Y-m-d g:i:s A", time());

如果您想要当前 utc 时间,则使用 gmdate 函数,它将忽略任何本地时区设置。

$s = gmdate("Y-m-d g:i:s A", time());

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    相关资源
    最近更新 更多