php修改時(shí)差的解決辦法:1、通過(guò)“date_default_timezone_set('Asia/Shanghai');”消除時(shí)間差;2、通過(guò)“gmdate("Y-m-d H:i:s", mktime() + $timeoffset * 3600);”格式化時(shí)間。
php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:Windows7系統(tǒng)、PHP8.1版、Dell G3電腦。
php 怎么修改時(shí)差?
-
PHP獲得當(dāng)前時(shí)間的方法
使用函式 date() 實(shí)現(xiàn)
<?php date_default_timezone_set('Asia/Shanghai');//此句用于消除時(shí)間差 echo $nowtime=date("Y-n-j H:i:s"); ?>
-
出現(xiàn)時(shí)差的解決辦法
可以使用如下代碼:
<?php $timeoffset = 8; echo gmdate("Y-m-d H:i:s", mktime() + $timeoffset * 3600); //gmdate()函數(shù)返回的是GMT(格林威治)時(shí)間,$timeoffset是各地的時(shí)差。8是北京時(shí)間和GMT的時(shí)差。 ?>
還有~從php5.1.0開始,php.ini里加入了date.timezone這個(gè)選項(xiàng),默認(rèn)情況下是關(guān)閉的
也就是顯示的時(shí)間(無(wú)論用什么php命令)都是格林威治標(biāo)準(zhǔn)時(shí)間
和我們的時(shí)間(北京時(shí)間)差了正好8個(gè)小時(shí),有以下3中方法可以恢復(fù)正常的時(shí)間。
1,最簡(jiǎn)單的方法就是不要用php5.1以上的版本
2,如果一定要用,而且不能修改php.ini,則需要在關(guān)于時(shí)間的初始化的語(yǔ)句的
上面加上 date_default_timezone_set (XXX);
3,一勞永逸,僅限能修改php.ini。打開php.ini查找date.timezone 去掉前面的分號(hào)
= 后面加PRC,重啟http服務(wù)(如apache2或iis等)即可
關(guān)于2那個(gè)括號(hào)中的XXX可以去php官方查,地址:http://www.php.net/manual/en/timezones.php
推薦學(xué)習(xí):《PHP視頻教程》