编程中关于对时区的理解(语言PHP)
时间戳
首先来说说time()返回的时间戳,时间戳则是自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
格林威治
由于地球圆的,因此每个时区的时间都有差异,而格林威治时间和北京相差8小时,则应当加8小时(PHP时区中没有北京时区,一般使用上海时区)。
我们可以使用date('Z')函数查看当前系统默认时区与格林威治时间的时差。
var_dump(date('Z')); //打印输出:string '28800' (length=5)
28800即60*60*8,也就是8小时。
比如当前北京时间的时间戳是time()=1300999605
那么格林威治的时间戳就是:
1300999605-28800=1300970805
设置脚本时区
1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;号,然后设置data.timezone = “Asia/Shanghai”;即可。
2、在程序PHP 5以上版本的程序代码中使用函数ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set(‘Asia/Shanghai');
一些常用的时区标识符说明:
Asia/Shanghai – 上海
Asia/Chongqing – 重庆
Asia/Urumqi – 乌鲁木齐
Asia/Hong_Kong – 香港
Asia/Macao – 澳门
Asia/Taipei – 台北
Asia/Singapore – 新加坡