0

我在查询中将时间和日期作为时间戳插入到我的表中,这显示为本地服务器时间。我的本地服务器在美国。

我正在尝试将本地时间转换为特定时区 - 欧洲/伦敦。

我最好希望在将时区特定时间插入表格时插入它,但是我一直有很多问题,我所做的一切都不起作用。

所以现在我只是想在我回显时将时间从本地时间转换为特定时区。这给出了这个错误:

Catchable fatal error: Object of class DateTime could not be converted to string in /home/content/31/9118831/html/ptbadmin/stats.php on line 79

有人可以告诉我我哪里错了。我的桌子看起来像这样:

    session_id | user_ip | session_start|
    1            1.1.1.1   2013-04-08 00:15:24
    2            1.1.1.1   2013-04-08 00:15:24

这是我的代码:

     $sql = "INSERT INTO ptb_sessions (session_id, user_ip, session_start, session_end) VALUES (NULL, '" . $_SERVER['REMOTE_ADDR'] . "', UTC_TIMESTAMP(), NULL);";
                    mysql_query($sql, $connection);

   <?
$result= mysql_query("SELECT * FROM ptb_sessions");
 while($row = mysql_fetch_array($result)){
      echo"<div class=\"session_id\">{$row['session_id']}</div>";

       echo"<div class=\"user_ip\">{$row['user_ip']}</div>";

           $dt_obj = new DateTime($row2['session_start']." UTC");
      $dt_obj->setTimezone(new DateTimeZone('Europe/London'));
      echo"<div class=\"session_start\">$formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s')</div>"; 


     }
    ?>
4

2 回答 2

0

您是否尝试过date_default_timezone_set('Europe/London');在您的 php 脚本之上使用?即<?php date_default_timezone_set('Europe/London'); //rest of your code ?>您也可以在 mysql 中设置时区,SET time_zone = timezone;
有关支持的时区列表的详细信息,请访问 http://www.php.net/manual/en/timezones.php,对于 mysql,请访问http://dev.mysql.com/doc/ refman/5.1/en/time-zone-support.html
调整你的代码

<?php
date_default_timezone_set('Europe/London');
$timestamp = date("Y-m-d H:i:s",time()); // Your required format
$sql = "INSERT INTO ptb_sessions (session_id, user_ip, session_start, session_end) VALUES (NULL, '" . $_SERVER['REMOTE_ADDR'] . "', $timestamp, NULL);";
mysql_query($sql, $connection);  
?>

<?php
$result= mysql_query("SELECT * FROM ptb_sessions");
 while($row = mysql_fetch_array($result)){
      echo"<div class=\"session_id\">{$row['session_id']}</div>";
      echo"<div class=\"user_ip\">{$row['user_ip']}</div>";
      echo"<div class=\"session_start\">{$row['session_start']}</div>"; 
     }
?>
于 2013-05-02T09:24:41.853 回答
-1

你不能这样使用...更改:

date_format($dt_obj, 'Ymd H:i:s')

至:

$dt_obj->format('Ymd H:i:s');

于 2013-05-02T09:36:57.570 回答