13

这似乎很奇怪,但我已经检查了所有内容,但仍然发生了奇怪的事情。

我无法更改我的 php 脚本的时区

首先要做的事情是:我所做的是这样的:

<?php
date_default_timezone_set('UTC');
echo '<br>';
echo date('Y-m-d H:i:s');
?>

当我在测试http://codepad.org/rpYZ0flA上尝试这个时,这似乎工作正常。

我的服务器时区设置为 UTC+8:00 台北,但是当我尝试上面的代码时,它并没有真正起作用。它仍然在我的服务器时区显示我当前的 date_time,而不是遵循上面的代码。

这是我服务器的 php.ini 配置:

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

为什么会这样?这已经是一个错误了吗?还是 server_setup 上的错误,或者我只是错过了代码中的某些内容?

谢谢你。

注意: 我的环境是使用 PHP 5.4.4 在 VM 中运行的 Windows 7N

使固定:

我通过手动更改 php.ini 得到了修复

4

3 回答 3

4

尝试这个

<?php 
echo date('Y-m-d H:i:s T', time()) . "\n";
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s T', time()) . "\n";

在这里你会发现测试结果http://codepad.org/gc5oYnLW

于 2014-01-06T05:35:54.640 回答
3

如果您只想要自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00 GMT)以来的秒数和时区。使用下面的代码:

<?php
date_default_timezone_set("UTC"); 
time()+date("Z");
于 2016-01-26T13:15:43.993 回答
0

它应该可以正常工作。

如有疑问,请使用以下代码进行检查:

<?php 
date_default_timezone_set('America/Virgin');
echo date('Y-m-d H:i:s T') . "\n";
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s T') . "\n";

为了您的方便,这里有一个键盘预览。

返回将如下所示(带有更新的日期和时间):

2017-12-11 03:09:58 AST
2017-12-11 07:09:58 UTC

如果失败,请仔细检查您的服务器配置……从您的PHP.ini文件开始。

于 2017-12-11T07:11:48.807 回答