快捷搜索:

php系统时区设置方法总结,PHP中设置时区方法小结

2019-11-17 16:03栏目:计算机网络
TAG:

本函数永远返回 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');
?>

时间和服务器当前时间一样了!

      PHP时间函数出错及解决方法:php date_default_timezone_set()函数date.timezone时间区这些因素都是影响php时间的,最主要的问题是默认php时间函数用的是格林威治标准时间和我们的时间(北京时间)差了正好8个小时,这也是php时间函数出错解决的人口。

上面是一种设置系统当前时间的方法,在这里将采用另外一种方式设置系统当前的时间,即直接在date()函数之前通过date_default_timezone_set()函数设置系统的时区,并输出系统当前的日期和时间。代码如下

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

1,最简单的方法就是不要用php5.1以上的版本

输出系统的当前时间

另外附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
返回值

2,如果一定要用,而且不能修改php.ini,则需要在关于时间的初始化的语句的
上面加上 date_default_timezone_set (XXX);

<?php
echo "UTC时间:".date("Y-m-d H:i:s");  //显示默认的UTC时间
date_default_timezone_set("PRC");      //使用中华人民共和国的时区
echo "<br>";
echo "北京时间:".date("Y-m-d H:i:s");  //输出北京时间
echo "<br>";
echo "中文时间:".date("Y年m月d日 H时i分s秒");  //输出中文格式时间
echo "<br>";
echo "当前时区:".date_default_timezone_get();   //获取当前时区
?>

本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。

或者修改 php.ini 中 date.timezone 值
date.timezone = PRC

php时间函数出错及解决方法 php date_default_timezone_set()函数用法date.timezone时间区

6 ini_set('date.timezone','Asia/Shanghai');

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

      从php5.1.0开始,php.ini里加入了date.timezone时间区这个选项,默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。

7 ini_set('date.timezone','Asia/Chongqing');

时间和服务器当前时间一样了!

3,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone时间区去掉前面的分号
=后面加XXX,重启http服务(如apache2或iis等)即可。如果php.ini找不到date.timezone时间区这行,是不是就没办法了呢,当然不是啦,哈哈没有的话就自己加嘛,自己动手丰衣足食。我加了这样一句date.timezone= "PRC",问题就搞定了,高兴一下.

修改 .htaccess文件

以下是一些资料补充:

      以前碰到一个问题问题,就是echo date("y-m-dh:i:s",time())回来的时间总是与实际时间对不上,今天终于在网上找到了原因和解决方法,分享如下:

 代码如下

另外附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
返回值

PRC是什么?PRC是中华人民共和国啊-_-

解决方式:

在页头使用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() 设定用于所有日期时间函数的默认时区。

    注: 自 PHP5.1.0 起(此版本日期时间函数被重写了),如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE级别的错误信息。

参数

timezone_identifier

    时区标识符,例如UTC 或 Europe/Lisbon

返回值
本函数永远返回 TRUE(即使 timezone_identifier 参数不合法)。


再附上时区标识符:

CET
CST6CDT
Cuba
EET
Egypt
Eire
EST
EST5EDT
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
Etc/GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6
Etc/GMT-7
Etc/GMT-8
Etc/GMT-9
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/Universal
Etc/UTC
Etc/Zulu
Factory
GB
GB-Eire
GMT
GMT+0
GMT-0
GMT0
Greenwich
Hongkong
HST
Iceland
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
MET
MST
MST7MDT
Navajo
NZ
NZ-CHAT
Poland
Portugal
PRC
PST8PDT
ROC
ROK
Singapore
Turkey
UCT
Universal
UTC
W-SU
WET

还可以用 ini_set() 来设置时区

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

(1)修改php.ini文件中的设置,找到[date]下的“;date.timezone=”选项,将其修改为“date.timezone=Asia/Hong_Kong”,然后重新启动Apache服务器。

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

关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi(依次为重庆,上海,乌鲁木齐)
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
老外好像把北京漏调了
其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC

 代码如下

<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>

参数为PHP可识别的时区名称,如果时区名称PHP无法识别,则系统采用UTC时区。在PHP手册中提供了各个时区名称列表,其中,设置我国北京时间可以使用的时区包括:PRC(中华人民共和国)、Asia/Chongqing(重庆)、Asia/Shanghai(上海)或者Asia/Urumqi(乌鲁木齐),这几个时区名称等效的。

找到原因后,在网上搜索到了一些关于PHP的时区设置方法:

date_default_timezone_set('PRC');

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

 代码如下

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

更改PHP语言中的时区设置有两种方法:

复制代码 代码如下:

代码
date_default_timezone_set(‘Etc/GMT’);
//在输出时间之前设置时区,Etc/GMT为时间标准时间
echo(time());
echo(‘
’);
echo date(‘Y-m-d H:i:s’, time());
echo(‘
’);
echo gmdate (“Y-m-d H:i:s”, time());
echo(‘
’);
date_default_timezone_set(‘PRC’);
//在输出时间之前设置时区,PRC为中华人民共和国
echo(time());
echo(‘
’);
echo date(‘Y-m-d H:i:s’, time());
echo(‘
’);
echo gmdate (“Y-m-d H:i:s”, time());
?>
结果:
1276257131
2010-06-11 11:52:11
2010-06-11 11:52:11
1276257131
2010-06-11 19:52:11
2010-06-11 11:52:11
结论:
time() :标准时间戳
指返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间(指的是当前GMT标准时间)的秒数,它的值跟php系统设置的时区无关。
date():返回的是当前 GMT标准时间的本地化时间的“自定义格式”时间,跟php系统设置的时区有关。
gmdate():返回的是当前 GMT标准时间的“自定义格式”时间,跟php系统设置的时区无关

复制代码 代码如下:

或者

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

 代码如下

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

(2)在应用程序中,在使用时间日期函数之前添加如下函数:

函数设置时区方法:

由于PHP5.0对data()函数进行了重写,因此,目前的日期时间函数比系统时间少8个小时。在PHP语言中默认设置的是标准的格林威治时间(即采用的是零时区),所以要获取本地当前的时间必须更改PHP语言中的时区设置。

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

1 date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai'   亚洲/上海

您可能感兴趣的文章:

  • php三元运算符知识汇总
  • PHP三元运算符的结合性介绍
  • php中的三元运算符使用说明
  • PHP 页面跳转到另一个页面的多种方法方法总结
  • 特详细的PHPMYADMIN简明安装教程
  • php下intval()和(int)转换使用与区别
  • windows下apache+php+mysql 环境配置方法
  • PHP 页面编码声明方法详解(header或meta)
  • PHP date函数参数详解
  • PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
  • 利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
  • php出现Cannot modify header information问题的解决方法大全
  • php 三元运算符实例详细介绍

找到date.timezone这行,去掉前面的分号,改成:

<?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'); //设置中国时区
?>

date.timezone = Asia/Shanghai

5 ini_set('date.timezone','PRC');

//PRC为中华人民共和国时区

unix时间戳:指的是当前(GMT标准)时间离unix纪元时间(1970-01-01 00:00:00)的秒数;
代码
date_default_timezone_set(‘Etc/GMT’);
//在输出时间之前设置时区,Etc/GMT为时间标准时间
echo(strtotime(’1970-01-01 08:00:00′));
echo(‘
’);
date_default_timezone_set(‘PRC’);
//在输出时间之前设置时区,PRC为中华人民共和国
echo(strtotime(’1970-01-01 08:00:00′));
?>
测试结果:
28800
0

测试:

整个地球分为24个时区,每个时序都有自己的本地时间。同一时间,每个时区的本地时间相差1到23个小时,例如,英国伦敦本地时间与北京本地时间相差8个小时。在国际无线电通信领域,使用一个统一的时间,称为通用协调时间(UTC,Universal Time Coordinated),UTC与格林威治标准时间(GMT,Greenwich Mean Time)相同,都与英国伦敦的本地时间相同

设置完成后,date()函数便可以正常使用,不会再出现时差问题。

修改PHP.ini这个文件

4i ni_set('date.timezone','Etc/GMT-8');

strtotime(a):当前时间的GMT标准时间的unix时间戳,如果当前php系统的设置的时区不是GMT标准时区,则在应用strtotime(a)时,系统会自动把时间a折算成相应的GMT标准时间,然后计算这个时间的unix时间戳。跟php系统设置的时区有关

时区设置

 代码如下

 代码如下

修改.htaccess文件有两种办法,下面的两条语句只要有一条即可

3 date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”

<?php
    date_default_timezone_set("Asia/Kolkata");
    echo date('d-m-Y H:i:s'); //Returns IST
?>

在代码中设置时区

2 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”

时区划分

php_value date.timezone Asia/Shanghai
SetEnv TZ Asia/Shanghai

版权声明:本文由澳门金莎娱乐发布于计算机网络,转载请注明出处:php系统时区设置方法总结,PHP中设置时区方法小结