5

我曾经date("Y-m-d H:i:s");获取当前日期时间格式,但结果与我的 Windows 系统不匹配。

例子:

<?php
echo "Current date time: ".date("Y-m-d H:i:s")."<br />";
?>

显示结果的示例代码:

当前日期时间:2012-05-30 01:58:21

但我的 Windows 系统日期时间是 2012-05-30 09:56:04

我已经尝试使用date_default_timezone_set('Asia/Singapore')函数来获取我的区域日期时间并且它可以工作,但我希望它在我的 php.ini 中设置为默认值。

例如:(它的工作)

<?php
date_default_timezone_set('Asia/Singapore');
echo "Current date time: ".date("Y-m-d H:i:s")."<br />";
?>

我还尝试在date.timezone = ""更改为date.timezone = "Asia/Singapore"但不起作用的 php.ini 中设置默认值。

我使用 Windows 7 Home Premium 64 位和 php-5.3.13-Win32-VC9-x86。有谁知道如何匹配这些值?

4

3 回答 3

2
  • 您是通过网络服务器(例如 Apache)还是 CLI 运行该脚本?更改 php.ini 后需要重新启动 Apache。

  • 您确定您正在编辑正确的 php.ini 文件吗?创建一个 phpinfo() 页面并在输出中验证 php.ini 文件的路径。

于 2012-05-30T02:23:26.623 回答
2

date_default_timezone_set将取代 php 默认时区设置,无需重新启动任何东西。但在你的情况下它不起作用。这很奇怪。试试这个,因为这是我最后的手段:

<?php
header('Content-Type: text/plain');
//date_default_timezone_set('Asia/Singapore');
date_default_timezone_set('Etc/GMT+8');
echo date("Y-m-d H:i:s A T", time());
?>

更新:

由于您需要的是默认的 php 时区和不使用的永久解决方案date_default_timezone_set,因此请按照以下几个简单步骤操作:

  1. phpinfo.php用一行内容创建一个文件<?php echo phpinfo(); ?>
  2. 运行 http://localhost /phpinfo.php 并查找Loaded Configuration File. 示例值C:\wamp\bin\apache\Apache2.2\bin\php.ini
  3. php.ini用记事本打开上面的文件。查找[Date]并修改如下:

    [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    date.timezone = Asia/Singapore
    
  4. 保存并重新启动您的 apache。再次运行您的datetime.php. 或者,您也可以直接从phpinfo.phph1 标题下验证date,方法是确保默认时区读取为“亚洲/新加坡”,如下所示: 在此处输入图像描述
于 2012-05-30T03:18:05.000 回答
1

您需要定义默认时区

date_default_timezone_set('Asia/Singapore');

更新

更改 PHP ini 后您是否重新启动了服务器?

于 2012-05-30T02:19:37.463 回答