CakePHP 2 TimeFormat

时间:2012-10-05 19:52:16

标签: php cakephp datetime timezone cakephp-2.0

我遇到时间格式问题我有这样的代码

        //in the core file it set to UTC
        debug(date_default_timezone_get());
        $currentTime = time(); //UTC

        //CurrentTime in UTC
        debug(date('Y-m-d H:i:s',$currentTime));

        $timepst = CakeTime::format('Y-m-d H:i:s', $currentTime, null, 'PST');
        $timejst = CakeTime::format('Y-m-d H:i:s', $currentTime, null, 'JST');

        //I'm trying to convert back the time from PST to UTC using PST time
        $timeutc = CakeTime::format('Y-m-d H:i:s', strtotime($timepst), null, 'UTC');

        debug('PST : ' . $timepst);
        debug('JST : ' . $timejst);
        debug('UTC : ' . $timeutc);

结果是

'UTC'

'2012-10-05 19:44:50'

'PST : 2012-10-05 12:44:50'

'JST : 2012-10-06 04:44:50'

'UTC : 2012-10-05 12:44:50'

我的问题是,如何使用PST时间转换回UTC不起作用? 任何帮助?

基本上,我想让用户根据自己的时区(日期输入)保存一些文章,但我需要将其转换回UTC以将其保存在数据库中。

1 个答案:

答案 0 :(得分:0)

转换是根据服务器的时区和作为派对传递给CakeTime :: format()的用户时区之间的时差来完成的。在第3次调用CakeTime :: format()的示例代码中,您将用户时区作为UTC传递,服务器的时区也是UTC,因此时间不会发生变化。