php5.2.4之前的版本无需设置默认的时区,使用date函数生成时间时自动根据所在时区创建时间。
在php5.2.4下生成时间的时区是GMT,而不是GMT+8,所以显示时间时会相差8个小时。修改php环境默认时区有2个方法:
1、修改php.ini
打开php.ini文件,找到 date.timezone 那一行,去掉前面的“;” ,修改为你需要的时区,例如:date.timezone = Asia/Shanghai
2、使用php函数
如果你使用北京时间,就像这样就可以了。date_default_timezone_set("Asia/Shanghai");注:确认修改正确的php.ini文件,通过phpinfo()可以查看php.ini文件所在的路径,修改php.ini文件后重启apache。

解决方案 »

  1.   

    date_default_timezone_set("Asia/Shanghai"); 
    如果进行了这项修改之后,它会把16点显示成04,
    我如果想显示成16怎么处理呢?
      

  2.   


    <?php
    $date = new DateTime();
    $date->modify("+8 hour");
    echo $date->format("Y-m-d H:i:s");
    ?>  
      

  3.   

    这个DateTime();的类能不能提供一下啊?还是自己写啊?
      

  4.   

    昂?难道不是php的?
    这个是手册里的示例啊。。搜date_modify下面的示例。
      

  5.   

    php 5开始php.ini中有时区设置
    http://cn2.php.net/manual/en/book.datetime.php默认的时区是GMT,中国是+8区,所以有8小时差解决办法,设置时区使用API  date_timezone_set
    http://cn2.php.net/manual/en/function.date-timezone-set.php支持的时区
    http://us.php.net/manual/en/timezones.others.php当然你修改你的php.ini也可以
      

  6.   

    date_default_timezone_set("Asia/Shanghai"); 
      

  7.   

    [code=PHP
    //如果只写这几句,而不对服务器进行设置,他只能把16点,显示成04,不信的可以试一试啊,
    //我想学找一种不该服务器php.ini的方法,请高手指点
    date_default_timezone_set("Asia/Shanghai"); 
    $hh=date("his"); 
    echo $hh; 
    [/code]
      

  8.   


    问题不是那个date_default_timezone_set。你的格式化字符串是12小时制的。date_default_timezone_set("Asia/Shanghai");
    $hh=date("His");//把“h”改成大写的就可以了
    echo $hh;
      

  9.   

    我非常搞笑的告诉你,16点是下午04点。你在date()函数中参数h表示:小时,12 小时格式,有前导零 01 到 12 
    如果你要把他搞成16点,那么请使用H参数。date_default_timezone_set("Asia/Shanghai");
    $hh=date("H:i:s");
    echo $hh;