如何在php中指定时区以正确输出日期('Y')

时间:2012-12-11 13:26:11

标签: php timezone

我的php代码有点问题,请看下面的

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

我在error_log中收到的错误属于以下性质

  

PHP警告:date()[function.date]:它   依赖系统的时区设置是不安全的。你是    required 使用date.timezone设置或date_default_timezone_set()函数。如果您使用其中任何一个   方法,你最有可能仍然得到这个警告   拼写错误的时区标识符。我们选择了“美国/芝加哥”   'CST / -6.0 /无夏令时'

我不知道如何在我的简单php脚本中指定其中任何一个。

任何帮助表示赞赏!

6 个答案:

答案 0 :(得分:6)

我相信这个警告是明确的。试试并使用它:

<?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

答案 1 :(得分:2)

documentation is really quite clear

你做

date_default_timezone_set('UTC');

(或者你想要的任何时区)

答案 2 :(得分: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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

 date_default_timezone_set("Europe/Rome");

答案 5 :(得分:0)

如果您使用的是PHP&gt; = 5.4.0,则有两种选择:

  1. 在调用日期函数

    之前使用date_default_timezone_set()
      

    &LT; ? php

         

    date_default_timezone_set( “美国/芝加哥”);

         

    $ thisyear = date('Y');

         

    echo“©2004- $ thisyear保留所有权利。”;

         

    &GT;

  2. 使用设置在php.ini中指定默认时区,方法是在php.ini文件中添加选项date.timezone,然后只使用日期函数:

      

    [日期]

         

    定义日期函数

    使用的默认时区      

    date.timezone = America / Chicago

  3. 选项2是默认值,除非在调用date之前显式调用date_default_timezone_set(),否则将使用它。

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

      

    按优先顺序,此函数返回默认时区:

         
        
    • 使用date_default_timezone_set()函数读取时区集(如果有的话)

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

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

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

    •   

    希望有所帮助