2012-12-11 31 views
1

小问题,我的PHP代码,请参见下面如何在PHP中指定时区输出日期(“Y”)正确

<?php 
$thisyear = date('Y'); 
echo "<span>&copy; 2004-$thisyear All rights reserved. </span>"; 
?> 

错误我越来越会在error_log有下列性质

PHP警告:date()[function.date]:它 是不安全依赖于系统的时区设置。您需要 需要才能使用date.timezone设置或date_default_timezone_set()函数。如果您使用这些 方法中的任何一种,并且您仍然收到此警告,则极有可能是 拼写错误的时区标识符。我们选择“美国/芝加哥”的 “CST/-6.0 /没有DST”

我不知道如何指定在我简单的PHP脚本或者这一点。

任何帮助表示赞赏!

+0

date_default_timezone_set()函数需要用这一切的时区设置。 – Lenin

回答

5

我相信警告是一样明确的。尝试使用这样的:

<?php 
date_default_timezone_set('America/Los_Angeles'); 
$thisyear = date('Y'); 
echo "<span>&copy; 2004-$thisyear All rights reserved. </span>"; 
?> 

你可以看到以下链接所有支持的时区列表:http://php.net/manual/en/timezones.php

+0

感谢您的快速帮助,实际上问题不是时区,因为我已经设置了它,它是在服务器上传完全错误的文件。傻我!!! – AlexB

1

您只需指定,像这样的时区。

<?php 
date_default_timezone_set('America/Chicago'); // Or any other timezone 

$thisyear = date('Y'); 
echo "<span>&copy; 2004-$thisyear All rights reserved. </span>"; 
?> 

对时区的完整列表,请参阅 - List PHP TimeZones

1
<?php 
    // set the default timezone to use. Available since PHP 5.1 
    date_default_timezone_set('UTC'); 
    echo date('y'); 
    ?> 
+0

感谢您的快速帮助 – AlexB

0
date_default_timezone_set("Europe/Rome"); 
0

如果你正在使用PHP> = 5.4.0你有两种选择:

  1. 使用调用日期函数前的date_default_timezone_set()

    <? php

    date_default_timezone_set(“America/Chicago”);

    $ thisyear = date('Y');

    echo“© 2004- $ thisyear All rights reserved。”;

    ?>

  2. 使用设置在你的PHP添加选项date.timezone指定在php.ini默认的时区。ini文件和简单地使用日期功能:

    [日期]

    ;定义由日期函数使用

    date.timezone =美国/芝加哥

    默认的时区

选项2的默认值,它会被使用,除非你显式调用日期之前调用date_default_timezone_set() 。

如果您的PHP版本是< 5.4.0,您还可以使用环境变量TZ或操作系统。在date_default_timezone_set()文档,你可以看到的优先级:

按优先顺序排列,这种功能通过返回的默认时区:

  • 使用date_default_timezone_set()函数读取时区设置(如果任何)

  • 之前PHP 5.4.0只:读取TZ环境变量(如果非空)

  • 读取值o f date.timezone ini选项(如果已设置)

  • 仅适用于PHP 5.4.0之前:查询主机操作系统(如果支持和允许的话)。这使用必须猜测时区的算法。这绝不会在任何情况下都能正确工作。当达到此阶段时会显示警告。不要依赖它来正确猜测,而是将date.timezone设置为正确的时区。

希望它可以帮助

+0

这正是我所做的,感谢您的帮助! – AlexB

相关问题