PHP中设置时区方法

凨影 1084

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后你会发现这样的问题 

<?php
$atime=date("Y-m-d H:i:s"); 
echo $atime; 
?>

输出:2019-01-15 09:36:06 

现在几点了?/我的是17: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; 
?>

输出:2019-01-15 10:36:06 

现在几点了?/我的是18: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 参数不合法)。


联系QQ:77798085 赞助请点这里
管理员回复
    全部回复 (10)
    • 风语无声 2019-1-16
      2
      广西
    • ladyantebellum 2020-4-18
      3
      面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。
      亚太地区
      这个人很有个性,连签名都没有!
    • tcdzzw 2020-4-18
      4
      看帖必回是好习惯!
      亚太地区
      这个人很有个性,连签名都没有!
    • iamchi 2020-4-20
      5
      面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。
      亚太地区
      这个人很有个性,连签名都没有!
    • 卧龙 2020-4-20
      6
      心情不好,来杯板蓝根!
      亚太地区
      这个人很有个性,连签名都没有!
    • 搞怪大叔 2020-4-30
      7
      宁可少抽一支,不可少顶一次贴。
      亚太地区
      这个人很有个性,连签名都没有!
    • windnest 2020-6-12
      8
      与人为善, 好运常伴!
      亚太地区
      这个人很有个性,连签名都没有!
    • 听腻了谎话 2020-6-13
      9
      难得一见的好贴。。。。。。
      亚太地区
      这个人很有个性,连签名都没有!
    • shantao 2020-6-15
      10
      面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。
      亚太地区
      这个人很有个性,连签名都没有!
    • dmwearqqcom 2020-6-17
      11
      与人为善, 好运常伴!
      亚太地区
      这个人很有个性,连签名都没有!