php新手经常会在echo 当前时间的时候发现打印出来的时间和当前时间相差8个小时的问题,这个错误的原因是因为没有设置php的当前时区,PHP默认获取的时间是格林威治标准时间,从地理学角度上来讲这个地方的时间是和北京的时间是相差8个小时的,我以前也经常碰到过这种问题,今天就这个问题总结了php中设置时区的几种方法,希望能帮到所有遇到同样问题的兄弟们额!
1、修改apache服务器的配置文件php.ini,在php.ini中找到 data.timezone 这行,去掉它前面的;号,然后修改为
data.timezone = "Asia/Shanghai" 或者 date.timezone = "PRC" 即可。
2、直接在PHP 5以上版本apache服务器上的程序代码中使用函数 ini_set('date.timezone','Asia/Shanghai'),或者也可以写为 date_default_timezone_set('Asia/Shanghai'),效果是一样的。下面列出几个中国内陆的常用时区标识符:
Asia/Shanghai – 上海
Asia/Chongqing – 重庆
Asia/Urumqi – 乌鲁木齐
Asia/Hong_Kong – 香港
Asia/Macao – 澳门
利用php函数设置时区的方法:
ini_set('date.timezone','Asia/Shanghai'); //这里设置的是上海时区 date_default_timezone_set("Etc/GMT-8");//这里设置的是比林威治标准时间快8小时 date_default_timezone_set("Etc/GMT+8");//这里设置的是比林威治标准时间慢8小时 date_default_timezone_set('PRC'); //设置中华人民共和国时区