1

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

<?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/no DST' 选择了 'America/Chicago'

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

任何帮助表示赞赏!

4

6 回答 6

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

于 2012-12-11T13:28:27.897 回答
2

文档真的很清楚。

你做

date_default_timezone_set('UTC');

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

于 2012-12-11T13:32:36.437 回答
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

于 2012-12-11T13:29:12.580 回答
1
    <?php
    // set the default timezone to use. Available since PHP 5.1
    date_default_timezone_set('UTC');
   echo date('y');
    ?>
于 2012-12-11T13:29:58.840 回答
0
 date_default_timezone_set("Europe/Rome");
于 2012-12-11T13:44:05.863 回答
0

如果您使用的是 PHP>=5.4.0,您有两种选择:

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

    < ? php

    date_default_timezone_set("美国/芝加哥");

    $thisyear = date('Y');

    echo "© 2004-$thisyear 版权所有。";

    ?>

  2. 通过在 php.ini 文件中添加选项date.timezone来使用设置在 php.ini 中指定默认时区,并简单地使用 date 函数:

    [日期]

    ; 定义日期函数使用的默认时区

    date.timezone = 美国/芝加哥

选项 2 是默认值,除非您在调用 date 之前明确调用 date_default_timezone_set(),否则将使用它。

如果您的 PHP 版本 <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 设置为正确的时区。

希望能帮助到你

于 2012-12-11T13:46:07.263 回答