zoukankan      html  css  js  c++  java
  • (转载)PHP中设置时区方法小结

    (转载)http://www.jb51.net/article/30483.htm

    今天发现一段PHP代码中的时间判断语句出了点问题,研究了一下发现问题出在PHP的时区设置上,PHP所取的时间默认是格林威治标准时间,所以和北京时间相差8小时,找到原因后,在网上搜索到了一些关于PHP的时区设置方法:

    1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;号,然后设置data.timezone = “Asia/Shanghai”;即可。

    2、在程序PHP 5以上版本的程序代码中使用函数ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set(‘Asia/Shanghai');

    一些常用的时区标识符说明:

    Asia/Shanghai – 上海
    Asia/Chongqing – 重庆
    Asia/Urumqi – 乌鲁木齐
    Asia/Hong_Kong – 香港
    Asia/Macao – 澳门
    Asia/Taipei – 台北
    Asia/Singapore – 新加坡


    函数设置时区方法:
    复制代码 代码如下:
    <?php
    function_exists(date_default_timezone_set);//在这他总是返回1,这函数是判断这里面的字符是不是一个定义了的函数名
    date_default_timezone_set("Etc/GMT");//这是格林威治标准时间,得到的时间和默认时区是一样的
    date_default_timezone_set("Etc/GMT+8");//这里比林威治标准时间慢8小时
    date_default_timezone_set("Etc/GMT-8");//这里比林威治标准时间快8小时
    date_default_timezone_set('PRC'); //设置中国时区
    ?>


    函数ini_set()设置时区:
    可以在文件开头加入 ini_set('date.timezone','Asia/Shanghai'); // 'Asia/Shanghai' 为上海时区

    手动修改php.ini设置
    打开php找到date.timezone = "PRC" 如有去掉前面的分号,没有的话手动添加!

    以下是一些资料补充:

    装上PHP5后你会发现这样的问题

    $atime=date("Y-m-d H:i:s");
    echo $atime;
    ?>
    输出:2006-05-16 06:36:06
    现在几点了?/我的是14:36
    这是为什么捏?
    原因是假如你不在程序或配置文件中设置你的服务器当地时区的话
    PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入
    格林威治标准时间和北京时间大概差8个小时左右 那么我们如何避免时间误差呢?
    我们一起来看看解决方法:
    在页头使用date_default_timezone_set()设置我的默认时区为北京时间
    复制代码 代码如下:
    <?
    date_default_timezone_set('PRC');
    echo date('Y-m-d H:i:s');
    ?>

    时间和服务器当前时间一样了!
    另外附date_default_timezone_set用法如下:
    ------------------------------------------------------------------------------------
    date_default_timezone_set
    (PHP 5 >= 5.1.0RC1)
    date_default_timezone_set -- 设定用于一个脚本中所有日期时间函数的默认时区
    说明
    bool date_default_timezone_set ( string timezone_identifier )
    date_default_timezone_set() 设定用于所有日期时间函数的默认时区。
    注: 自 PHP 5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息。
    参数
    timezone_identifier
    时区标识符,例如 UTC 或 Europe/Lisbon
    返回值
    本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。
    -------------------------------------------------------------------------------------
    或者修改 php.ini 中 date.timezone 值
    date.timezone = PRC

    装上PHP5后你会发现这样的问题
    $atime=date("Y-m-d H:i:s");
    echo $atime;
    ?>
    输出:2006-05-16 06:36:06
    现在几点了?/我的是14:36
    这是为什么捏?
    原因是假如你不在程序或配置文件中设置你的服务器当地时区的话
    PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入
    格林威治标准时间和北京时间大概差8个小时左右 那么我们如何避免时间误差呢?
    我们一起来看看解决方法:
    在页头使用date_default_timezone_set()设置我的默认时区为北京时间
    复制代码 代码如下:
    <?
    date_default_timezone_set('PRC');
    echo date('Y-m-d H:i:s');
    ?>

    时间和服务器当前时间一样了!
    另外附date_default_timezone_set用法如下:
    ------------------------------------------------------------------------------------
    date_default_timezone_set
    (PHP 5 >= 5.1.0RC1)
    date_default_timezone_set -- 设定用于一个脚本中所有日期时间函数的默认时区
    说明
    bool date_default_timezone_set ( string timezone_identifier )
    date_default_timezone_set() 设定用于所有日期时间函数的默认时区。
    注: 自 PHP 5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息。
    参数
    timezone_identifier
    时区标识符,例如 UTC 或 Europe/Lisbon
    返回值
    本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。
    -------------------------------------------------------------------------------------
    或者修改 php.ini 中 date.timezone 值
    date.timezone = PRC


    例子:

    <?PHP
    date_default_timezone_set('PRC'); //设置中国时区
    
    $t=time();
    echo date("Y-m-d H:i:s",$t).'<br>';
    
    echo date('G').'<br>';
    echo date('j').'<br>';
    ?>

    程序输出:

    2013-06-12 13:56:28
    13
    12
  • 相关阅读:
    标题党的进步:道字大旗不再扯,美为号召又开张
    dwr自动生成的js文件到底在哪里?
    JavaScript全局优化带来的负面效果……
    内训资料公开:设计师的实战过程(1)
    元语言基础技术之:在JS中如何自由地创建函数
    QoBean的元语言系统(一)
    Oracle面向服务的架构
    对JavaScript的eval()中使用函数的进一步讨论~
    KEGG and Gene Ontology Mapping in Bioinformatic Method
    mysql user administration
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3132608.html
Copyright © 2011-2022 走看看