【问题标题】:PHP ignoring my date.timezone?PHP忽略我的date.timezone?
【发布时间】:2012-10-22 06:13:36
【问题描述】:

time() 不断产生相同的时间戳,即使在我的 php.ini 中我不断切换

date.timezone = "Asia/Irkutsk"

date.timezone = "Europe/Belgrade"

phpinfo():

date/time support   enabled
"Olson" Timezone Database Version   2012.3
Timezone Database   internal
Default timezone    Asia/Irkutsk 

date/time support   enabled
"Olson" Timezone Database Version   2012.3
Timezone Database   internal
Default timezone    Europe/Belgrade 

时间戳保持不变。怎么办?

【问题讨论】:

  • 你有时间在本地电脑上吗?

标签: php apache datetime timezone


【解决方案1】:

你做了错误的假设。

Unix 时间戳始终采用 UTC。没有例外。 更改时区不会更改纪元的确切时刻(1970 年 1 月 1 日),因此从那时起的秒数将始终是“正确的”。

【讨论】:

  • 有道理。但这很奇怪,我正在尝试使用 Zend_Date::now() 生成本地时间戳,并且在资源中它看起来好像提供了本地时间戳.. 当它没有时
  • 虽然没有真正意义上的本地时间戳。我认为你需要重新思考你真正需要实现的目标,然后问问你如何才能做到这一点。
  • 好吧,我只是想在我的 mysql now() 和 php time() 之间进行同步。 mysql正在获取系统时间。我将设置 mysql 以使用 UTC :)
  • 更好:在 mysql 中使用 UNIX_TIMESTAMP() 并且不依赖于时区。
【解决方案2】:

修改php.ini后需要重启PHP

【讨论】:

  • 如果我没有重新启动它,更改将不会在 php.ini 中可见,它们显然是 :)
  • 它会在 php.ini 中可见,但不会加载到 php 中,很抱歉,我认为这是直截了当的,猜想是因为 Evert 所说的。跨度>
  • 在我的第一条评论中,我的意思是 phpinfo(),而不是 php.ini,请原谅
  • 没有问题,老实说,虽然 -1 表示可能是一个解决方案的答案是苛刻的:D
【解决方案3】:

我遇到了这个问题并与我的主人交谈,他们解释说 php.ini 中的任何时区设置都将被忽略,并且必须按如下方式更改 .htaccess 文件;

将此添加到 .htaccess

php_value date.timezone "Europe/London"

然后显示使用

echo date('d-m-Y H:i');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    相关资源
    最近更新 更多