我在查询中将时间和日期作为时间戳插入到我的表中,这显示为本地服务器时间。我的本地服务器在美国。
我正在尝试将当地时间转换为特定时区 - 欧洲/伦敦。
我最好想要在插入表格时插入时区特定时间,但是我遇到了很多问题,而且我所做的一切都不起作用。
所以现在我只是尝试将时间从本地转换为特定时区,当我回应它时。这给出了这个错误:
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 :(得分:0)
您是否尝试在PHP脚本之上使用date_default_timezone_set('Europe/London');
? ie <?php date_default_timezone_set('Europe/London'); //rest of your code ?>
您也可以使用SET time_zone = timezone;
在mysql中设置时区。
有关支持的时区列表的详细信息,请访问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>";
}
?>
答案 1 :(得分:-1)
你不能这样使用......改变:
date_format($ dt_obj,'Y-m-d H:i:s')
要:
$ dt_obj-&gt;格式('Y-m-d H:i:s');