2013-08-05 29 views
0

我正在Cakephp 2.x ..以及我有没有什么与cakephp做这个问题..所以这个场景是我有一个页面调用设置,其中用户设置他根据他的国家和在数据库中,我很存储GMT格式的时间USERINFO时区表 所以在用户信息表中的GMT时间datetime timezone转换cakephp/php

5.00 

现在我在其他表我有一个字段名为日期时间其中我以这种格式存储日期时间

2013-06-14 10:28:00 
现在

上我想与特定用户的日期时间显示的数据视图页面...

我想什么是我想要的GMT添加到这个日期,所以我可以根据最终日期时间用户国家...希望你承担我想说的...

回答

1

使用Cake的内置Timehelper。与$this->Time->format('d-m-Y H:i', $data['data']['datetime'], NULL, $data['User']['timezone']);

好运:添加助手在你的控制器public $helpers = array('Time');,然后在您的视图:

$this->Time->format($format = NULL, $date, $default = false, $timezone = NULL)

在你的情况下会。 :)

注: 从CakePHP 2.2 $format$date的顺序被改变。我解释的方式是CakePHP 2.2或更高版本。

+0

thankyou ...我认为这是我需要的确切解决方案,但只有一个问题即将到来...错误即将到来,说调用成员函数格式()在非对象..我有启用助手也在我的控制器 – hellosheikh

+0

你'回声'助手?像这样: '<?php echo $ this-> Time-> format($ format,$ date,$ default = NULL,$ timezone); ?> 堆栈跟踪报告什么? – JorickL

+0

我看到你已经找到了解决方案... http://stackoverflow.com/questions/18065086/cakephp-fatal-error-call-to-a-member-function-format-on-a-non-object – JorickL

0
<?php 
    $utc = gmdate("M d Y H:i:s"); // place your gmt timestamp here 
    echo $utc."<br>"; 
    $offset = date('Z'); //gets offset from gmt 
    echo $offset."<br>"; 
    $localtime = strtotime($utc) + $offset; // adjusts to localtime. 
    echo date("M d Y H:i:s", $localtime); 
?> 
+0

嗯,我存储到我的数据库已经GMT时间.. – hellosheikh

+0

我已经修改了我的答案。试试看。 – jboneca

+0

对不起,先生我didntr得到你的代码...我的gmt值是“5.00”和日期时间是这个“2013-06-14 10:28:00”我怎么能得到最终结果..我不需要服务器时间或日期 – hellosheikh

0
echo (new DateTime('2012-07-16 01:00:00 UTC')) 
      -> setTimezone(new DateTimeZone('GMT+8')) 
      ->format('Y-m-d H:i:s'); 

将输出中

2012-07-16 09:00:00