>  기사  >  백엔드 개발  >  PHP에서 베이징 시간을 설정하는 방법

PHP에서 베이징 시간을 설정하는 방법

WJ
WJ원래의
2020-06-08 16:48:254034검색

PHP에서 베이징 시간을 설정하는 방법

PHP에서 베이징 시간을 설정하는 방법은 무엇입니까?

이 문서의 예에서는 PHP date_default_timezone_set() 설정 시간대 작업을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다: date_default_timezone_set()设置时区操作。分享给大家供大家参考,具体如下: 

<?php
echo function_exists(date_default_timezone_set)."<br>";//在这他总是返回1,这函数是判断这里面的字符是不是一个定义了的函数名
echo date(&#39;Y-m-d H:i:s&#39;)."<br>";//默认时区的时间
 
echo date_default_timezone_set("Etc/GMT")."<br>";//这是格林威治标准时间,得到的时间和默认时区是一样的
echo date(&#39;Y-m-d H:i:s&#39;)."<br>";
 
echo date_default_timezone_set("Etc/GMT+8")."<br>";//这里比林威治标准时间慢8小时
echo date(&#39;Y-m-d H:i:s&#39;)."<br>";
 
echo date_default_timezone_set("Etc/GMT-8")."<br>";//由上一个不能难想像,我们比那快8小时所以减8
echo date(&#39;Y-m-d H:i:s&#39;)."<br>";
 
echo date_default_timezone_set(&#39;PRC&#39;)."<br>"; //设置中国时区
echo date(&#39;Y-m-d H:i:s&#39;)."<br>";//中国标准时间
?>

输出

2009-05-15 02:20:42 //默认时区时间
2009-05-15 02:20:42 //("Etc/GMT") 格林威治标准时间
2009-05-14 18:20:42 //("Etc/GMT+8") 比林威治标准时间慢8小时
2009-05-15 10:20:42 //("Etc/GMT-8") 比林威治标准时间快8小时,是我们的北京时间
2009-05-15 10:20:42 //('PRC') 中国标准时间

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

我补充一点,我按照下面提示的方法修改php.ini找不到date.timezone 这行,是不是就没办法了呢,当然不是啦,哈哈没有的话就自己加嘛,自己动手丰衣足食。我加了这样一句date.timezone = "PRC",问题就搞定了,高兴一下.

从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的

也就是显示的时间(无论用什么php命令)都是格林威治标准时间

和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。

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

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

3,一劳永逸,仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号
= 后面加XXX,重启http服务(如apache2或iis等)即可

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

解决方式:

在页头使用date_default_timezone_set()设置我的默认时区为北京时间

date_default_timezone_set(&#39;PRC&#39;);
echo date(&#39;Y-m-d H:i:s&#39;);

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

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 级别的错误信息。

Output


2009-05-15 02:20:42 //기본 시간대 시간

2009-05-15 02:20:42 // ("Etc/GMT") 그리니치 표준시

2009-05-14 18:20:42 //("Etc/GMT+8") 그리니치 표준시보다 8시간 느림

2009-05-15 10:20:42 / /("Etc/GMT-8") 우리의 베이징 시간인 링위치 표준시보다 8시간 빠릅니다

2009-05-15 10:20:42 //('PRC') 중국 표준시보다 빠릅니다


있습니다 남은 문제는 echo date("y-m-d h:i:s", time()) 에서 반환되는 시간이 항상 실제 시간과 일치하지 않는다는 문제입니다. 오늘 드디어 그 이유와 해결 방법을 온라인에서 아래와 같이 공유합니다. :

아래 방법으로 php.ini를 수정했는데 date.timezone 라인을 찾을 수 없다는 점을 덧붙이고 싶습니다. 제가 할 수 있는 일은 없나요? 물론 그렇지 않다면 그냥 추가하세요. 당신은 스스로 충분한 음식과 의복을 가질 것입니다. date.timezone = "PRC"를 추가했더니 문제가 해결되었습니다.

php5.1.0부터 php.ini에 date.timezone 옵션이 추가되었습니다

시간도 마찬가지입니다. 표시된 (어떤 php 명령을 사용하든) 그리니치 표준시

이며 이는 우리 시간(베이징 시간)과 정확히 8시간 다릅니다. 정상 시간을 복원하는 방법은 다음과 같습니다.

1. 가장 간단한 방법은 php5.1 이상을 사용하지 않는 것입니다.

2 꼭 사용해야 하고 php.ini를 수정할 수 없는 경우에는 시간 초기화에 대한
문에 date_default_timezone_set(XXX)을 추가해야 합니다. ;
cp에는 이 문제가 없습니다

3, 일단 php.ini만 수정할 수 있습니다. php.ini를 열고 date.timezone을 검색하세요. 앞의 세미콜론을 제거하고
= 뒤에 XXX를 추가하세요. http 서비스(예: apache2 또는 iis 등)를 다시 시작하세요.

XXX와 관련하여 사용 가능한 값 ​​​​중국 본토의 경우: 아시아/충칭, 아시아/상하이, 아시아/우루무치(중경, 상하이, 우루무치 순서)
홍콩 및 대만 사용 가능: 아시아/마카오, 아시아/홍콩, 아시아/타이베이(마카오 순서) , 홍콩, 타이페이)
그리고 싱가포르: 아시아/싱가포르
외국인들은 베이징을 놓친 것 같습니다
다른 사용 가능한 값은 다음과 같습니다: Etc/GMT-8, Singapore, Hongkong, PRC
PRC란 무엇인가요? PRC는 중화인민공화국이다 -----
----------------------------------------- - ------------------------------------------------- - ----------------


해결책:

기본 시간대를 설정하려면 헤더에 date_default_timezone_set()을 사용하세요. 베이징 시간으로

timezone_identifier

시간은 서버의 현재 시간과 동일합니다!! 축하합니다

다음과 같이 date_default_timezone_set 사용법을 첨부합니다

---------- ----------- -----------

rrreee
Parameters
rrreee
UTC 또는 Europe/Lisbon과 같은 시간대 식별자

반환 값
이 함수는 항상 다음을 반환합니다. TRUE(timezone_identifier 매개변수가 잘못된 경우에도 마찬가지)

-------------------------------------- ------------------------------------------

시간대 식별자 첨부:


CET
CST6CDT
Cuba
EET
이집트
Eire
EST
EST5EDT
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Etc/GMT+10
Etc/GMT+11
기타/그리니치 표준시 +12
등/GMT+2
등/GMT+3
등/GMT+4
등/GMT+5
등/GMT+6
등/GMT+7
등/GMT+8
등/GMT+ 9
기타/GMT-0
Etc/GMT-1
Etc/GMT-10
Etc/GMT-11
Etc/GMT-12
Etc/GMT-13
Etc/GMT-14
Etc/GMT-2
기타/ GMT-3
Etc/GMT-4
Etc/GMT-5
Etc/GMT-6

Etc/GMT-7
Etc/GMT-8

Etc/GMT-9Etc/GMT0Etc/그리니치 등/ UCTEtc/Universal

Etc/UTC🎜Etc/Zulu🎜Factory🎜GB🎜GB-Eire🎜GMT🎜GMT+0🎜GMT-0🎜GMT0🎜Greenwich🎜Hongkong🎜HST🎜Iceland🎜Iran🎜 이스라엘 🎜자메이카🎜 일본🎜 Kwajalein🎜Libya🎜MET🎜MST🎜MST7MDT🎜Navajo🎜NZ🎜NZ-CHAT🎜Poland🎜Portugal🎜PRC🎜PST8PDT🎜ROC🎜ROK🎜Singapore🎜Turkey🎜UCT🎜 Universal🎜 UTC🎜W-SU🎜WET🎜🎜🎜 관련 참조 : 🎜🎜php 중국어 홈페이지🎜🎜🎜

위 내용은 PHP에서 베이징 시간을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.