日期() 和 time() 之间的 PHP 时间不匹配



我想在数据库表中插入用户条目日志。我想保留当前日期时间的列是"date_time十进制(10,0)不是空默认值'0'"。插入数据时,我将字段设置为

$this->mytable->date_time = time();

我的查询已成功执行。但是当我想显示条目的时间时,它显示的时间与我的pc(本地服务器)时间不匹配。显示我写的时间

echo date('Y-m-d h:i:s A', $log->date_time);

我测试了几次,但它显示的时间比确切时间少 4 小时。在我的测试中,当前时间是 2013-09-15 04:46:34 PM,但表格行显示 2013-09-15 12:46:34 PM。

请帮助我。我找不到错误。

您需要指定时区。time()函数只会重复一个与时区无关的时间戳。

当您使用date()函数时,您使用的是服务器的时区,我建议使用 DateTime 对象:

$timezone = new DateTimeZone("Etc/GMT-4");
$date = new DateTime("@".$log->date_time); // @-symbol indicates timestamp input
$date->setTimezone($timezone);
echo $date->format("r");

以下是支持的时区列表 http://php.net/manual/en/timezones.php

对不起。这是我的错误。插入数据时,我将时区设置为

if(function_exists('date_default_timezone_set')) date_default_timezone_set("Asia/Dhaka");

但是在显示数据时,我忘记设置时区。当我按照之前在显示页面中定义的方式设置时区时,它工作正常。谢谢大家的帮助。

试试这个

<?php
date_default_timezone_get();
echo time();

手动

最新更新