php系统时区设置方法总结

时区划分

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

时区设置

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

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

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

修改PHP.ini这个文件

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

 代码如下 复制代码

date.timezone = Asia/Shanghai

修改 .htaccess文件

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

 代码如下 复制代码

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

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

在代码中设置时区

 代码如下 复制代码

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

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

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

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

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

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

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

date_default_timezone_set('PRC');

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

或者

 代码如下 复制代码

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

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

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

输出系统的当前时间

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

 代码如下 复制代码

<?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();   //获取当前时区
?>

测试:

 代码如下 复制代码

代码
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系统设置的时区无关

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

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

时间: 2024-10-25 22:14:14

php系统时区设置方法总结的相关文章

图解U盘装系统BIOS设置方法

  U盘启动是U盘装系统的必经之路,而设置U盘启动又是U盘启动中最关键的步骤.那么如何解决U盘装系统BIOS设置2010年之后的电脑这个问题呢,请跟着小编往下看. U盘装系统BIOS设置方法主要有两种,第一种,开机时通过按BIOS启动热键(快捷方式)进行的设置U盘启动,是一个临时的U盘启动,不会更改其他的BIOS设置.第二种是进入BIOS然后设置U盘为第一启动项的方法.此处,小编采用的是第二种方法. Phoenix – AwardBIOS(2010年之后的电脑)PS:要确保自己的电脑是2010年

Python时区设置方法与pytz查询时区教程_python

时区的概念与转换 首先要知道时区之间的转换关系,其实这很简单:把当地时间减去当地时区,剩下的就是格林威治时间了. 例如北京时间的18:00就是18:00+08:00,相减以后就是10:00+00:00,因此就是格林威治时间的10:00.而把格林威治时间加上当地时区,就能得到当地时间了. 例如格林威治时间的10:00是10:00+00:00,转换成太平洋标准时间就是加上-8小时,因此是02:00-08:00.而太平洋标准时间转换成北京时间转换也一样,时区相减即可. 例如太平洋标准时间的02:00-

Linux php时区设置方法总结

大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐) 港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北) 还有新加坡:Asia/Singapore 其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC 一,Linux设置时区,以CentOS5.5为例:  代码如下 复制代码 cp -f /usr/share/z

Windows系统安全设置方法--高级安全篇

1. 关闭 DirectDraw 这是C2级安全标准对视频卡和内存的要求.关闭DirectDraw可能对一些需要用到DirectX的程序有影响(比如游戏,在服务器上玩星际争霸?我晕..$%$^%^&??),但是对于绝大多数的商业站点都应该是没有影响的. 修改注册表 HKLMSYSTEMCurrentControlSetControlGraphicsDriversDCI 的Timeout(REG_DWORD)为 0 即可. 2.关闭默认共享 win2000安装好以后,系统会创建一些隐藏的共享,你可

Windows系统安全设置方法--中级安全篇

1.利用win2000的安全配置工具来配置策略 微软提供了一套的基于MMC(管理控制台)安全配置和分析工具,利用他们你可以很方便的配置你的服务器以满足你的要求.具体内容请参考微软主页:http://www.microsoft.com/windows2000/techi...y/sctoolset.asp 2.关闭不必要的服务 windows 2000 的 Terminal Services(终端服务),IIS ,和RAS都可能给你的系统带来安全漏洞.为了能够在远程方便的管理服务器,很多机器的终端

win7系统怎么还原,win7系统还原设置方法

系统出错了怎么办,难道只能重新安装系统吗,其实我们可以采取系统还原功能,本教程就为大家介绍一下win7系统中的还原功能,下面一起来看看具体操作吧. 工具原料 windows7 步骤方法 右键点击桌面上的[计算机]图标,选择"属性",打开[系统]窗口 在[系统]窗口的左侧窗格中,选择[系统保护]选项卡 在[系统属性]对话框中选中需要开启还原点设置的驱动器,单击[配置]按钮 如果想打开还原系统设置和以前版本的文件的功能,请选择[还原系统设置和以前版本的文件];如果想打开还原以前版本的文件的

Windows 8和Windows 7双系统切换设置方法

第一步.Bios设置 A.进入BIOS 界面,选择"Exit"→把 "OS Optimal Default"设置为"disabled" ,(OS Optimal default 开关可以理解为UEFI和传统BIOS的切换) B.按键盘上的F9,恢复BIOS默认值 C.进入startup界面,设置"CSM"为"enabled" (CSM:兼容支持模块 Compatibility Support Module)

华为荣耀6手机语言怎么设置 华为荣耀6系统语言设置方法

1.我们在手机打开 荣耀6手机,然后点击""设置"打开进入,细节如下. 2.然后我们再进入到设置 找到 全部设置选项卡, 然后进入之后找到下面的 语音和输入法,如下图所示. 3.接着在进入到手机的 语音和输入法界 我们再找到 系统语言下面的语言, 进入之后就可以设置 语言了,如下图所示.   4.在此找到我们自己要的语言,然后点击设置就可以设置成功了,如下图所示.     5.设置好语言之后我们手机再次回到桌面会发现手机语言变成你刚才设置了.     6.如果要恢复我们可以按

Linux PHP MySQL时区设置方法详解

LAMP环境下,理想的情况是Linux PHP MySQL的时区都设置一致,否则程序极易出现一些阴差阳错的[时间差]问题.假设设置时区为:"Asia/Shanghai" 1. Linux设置时区,以CentOS5.5为例: cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2. MySQL中设置时区 编辑MySQL配置文件:my.cnf/my.ini,在[mysqld]下加上: default-time-zone = '+8: