根据服务器时区动态打印时间


Print time dynamically based on server time zone

我读过很多关于这个问题的帖子,但我遇到了一个奇怪的问题。

我已经使用php.ini文件中的date.timezone指令将我的PHP服务器时区设置为"Asia/Bangkok"(只是一个示例),它工作得很好。

当我简单地将时间打印为时,服务器会根据设置的时区返回正确的时间

<?php echo date("F j, Y, g:i A"); ?> 

但当我想动态打印一系列时间时,在用户输入时输入mysql数据库,比如

<?php echo date("F j, Y g:i A", strtotime($row_entries['input_time']));?>

服务器根据主机设置的时区返回system时间,即Europe/Dublin(只是一个示例)。

我甚至试着在没有strtotime功能的情况下打印时间,比如

 <?php echo date("F j, Y g:i A",($row_entries['post_time']));?>

返回异常/无效日期。

这里出了什么问题?如何根据我在php.ini中设置的服务器时区动态打印时间?

这一行

$row_entries['post_time']

使用不同的MYSQL默认时区

所以请你发布SQL,在这一列中插入数据?

您的MySQL可能没有配置到正确的时区。以下是要配置的链接:http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

我正在使用时间戳

1) 使用int存储数字,使用varchar存储文本,使用datetime存储日期和时间
2) 阅读此数据类型的默认行为-当记录中的任何其他字段更新时,值将更新。此数据类型仅应用于日志记录目的。