PHP日期不准确



我有这样的代码:

$date = date("m/d/Y H:i:s");

但是它显示日期提前1天,而从我的电脑时间开始显示时间晚了5小时。

为例:我的日期/时间是07/25/2011 10:12PM

这段代码显示:07/26/2011 05:12:43

有什么问题吗?

它可能运行在与您的计算机不同时区的服务器上。您可以在调用date()之前使用date_default_timezone_set将其设置为正确的时区;从以下列表中找到您的时区的正确时区标识符:http://www.php.net/manual/en/timezones.php

我打赌这是一个时区设置问题。当你用echo date_default_timezone_get();

我猜它是与您当前时区时间相差7个小时的时间。

听起来好像您正在运行PHP的计算机上的时区设置不正确。

服务器是本地的吗?如果是,您必须更改PHP的时区设置(在PHP .ini中)以匹配您自己的时区设置,这将在整个站点上更改它。或者你可以使用date_default_timezone_set

在单个页面上更改它

如果服务器不是本地的,那么时区是基于它所在的位置的,如果你有访问权限,你可以改变它(如果你从供应商那里买了它,并且它是共享的,你就不会改变)。

除了使用此函数在脚本中设置默认时区外,还可以使用INI设置日期。Timezone设置默认时区。

如果您的PHP脚本没有显示正确的时间,原因很可能是您的主机服务器在不同的时区。这可以通过更改PHP中名为date.timezone的设置来轻松解决。

根据你的位置,你可以设置一个特定的日期。使用以下选项在PHP中设置时区值,该选项应添加到本地PHP .ini文件中:

日期。timezone = "US/Central"

上面的示例假设您希望将PHP脚本的时区设置为US/Central。支持的完整时区列表可在此处获得,您只需将"US/Central"替换为所需的时区。

正如您所评论的那样,您在太平洋时区,并且您打电话要提前7个小时返回时间,而现在是7月,您得到的时间是GMT时间。

虽然您可以并且可能应该按照PaulPRO的建议使用date_default_timezone_set,但是一定要有意识地考虑时区。总是这样。

在涉及日期和时间的应用程序中,重要的是要了解两个概念:

  • 瞬间
  • local dates, local datetime, local time,…

瞬间是一个时间点,对世界上的每个人来说都是相同的瞬间。它通常表示为纪元以来的毫秒数,但也可以表示为带有时区的日期。本地{date, time, datetime}是没有时区的东西。比如" 7月26日"或"下午5:15 "或" 7月26日晚上10:29 "好吧,但是是哪个时区呢?

当您专门处理本地日期(或本地时间或本地日期时间)时,您会遇到这类问题。尽量用真实的瞬间。

结束咆哮。: -)

最新更新