2013-05-02 2 views
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 

может кто-нибудь, пожалуйста, покажите мне, где im gonig неправильно. моя таблица выглядит следующим образом:

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>"; 


    } 
    ?> 

ответ

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 и тузд визит http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html
Tweaking код

<?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>"; 
    } 
?> 
-1

Вы не можете использовать, как это ... Изменить:

date_format($dt_obj, 'Y-m-d H:i:s')

To:

$dt_obj->format('Y-m-d H:i:s');

Смежные вопросы