程序⾥的国际时区和夏令时
1)时间服务器返回的时间为1900距今的秒数,⽽我们需要借助unix时间函数转为可读的时间,因此需要先把这个时间减去70年
(2208988800s)。
2)的开始结束时间使⽤的是转化后的当地时间,因此时间服务器获取到的UTC时间需要转为本地时间,才能进⾏时间是否在夏令间的判
断。
3)美国的夏令时,从每年3⽉第2个星期天凌晨开始,到每年11⽉第1个星期天凌晨结束。以2017年为例,美国2017年夏令时从3⽉12
⽇开始,到11⽉5⽇结束。
需要注意的是,美国有部分领⼟不实⾏夏令时,其中包括:亚利桑那州(纳⽡霍⼈保留地除外)、夏威夷、美属萨摩亚、关岛、波多黎各、美
属维京群岛。
3.数据库存储秒数的意义
php的time()返回1970年0点到现在的秒数java⾥也有。这个秒数不随我们设置服务器时区⽽改变
所以存储要存1501829643这个玩意,⽽不是2020-02-0103:40:58
4.程序⾥时区设置的意义
当我们弄清楚存储了⼀个固定的值,那么时区只是展⽰问题。
我是中国⼈在中国,那么程序设置为中国时区
date_default_timezone_t("Etc/GMT-8");
代表+8区
我是美国⼈在美国,那么程序设置为美国时区
date_default_timezone_t("Etc/GMT+5");
代表-5区
为啥是反的,有⼈在官⽅聊过这个话题。
“Etc/GMT-10”actuallyreferstothetimezone“(GMT+10:00)
Canberra,Sydney,Melbourne”.
程序的时区设计仅仅为了展⽰给客户看。
5.夏令时的秘密
date_default_timezone_t("America/New_York");
$time1=date("Y-m-dH:i:s");
$times1=strtotime($time1);
echo"纽约时区:".$time1."-".$times1."
";
echo"该时区使⽤夏令时:".date('I',time()).'
$time=time()-2*30*24*3600;//推算到1⽉
$stime=strftime("%Y-%m-%d%H:%M:%S",$time)."
";
echo"60天前今天现在时间:".$stime;
echo"该时区使⽤夏令时:".date('I',time()).'
echo"
date_default_timezone_t("ETC/GMT+4");
$time1=date("Y-m-dH:i:s");
$times1=strtotime($time1);
echo"GMT+4:".$time1."-".$times1."
";
echo"该时区使⽤夏令时:".date('I',time()).'
$time=time()-2*30*24*3600;//推算到1⽉
$stime=strftime("%Y-%m-%d%H:%M:%S",$time)."
";
echo"60天前今天现在时间:".$stime;
echo"该时区使⽤夏令时:".date('I',time()).'
echo"
输出
纽约时区:2020-03-3003:31:27-1585553487
该时区使⽤夏令时:1
60天前今天现在时间:2020-01-3002:31:27
该时区使⽤夏令时:1
GMT+4:2020-03-3003:31:27-1585553487
该时区使⽤夏令时:0
60天前今天现在时间:2020-01-3003:31:27
该时区使⽤夏令时:0
date_default_timezone_t("America/New_York");
这个时区的设置会因为夏令时的原因,导致在冬季时间不⼀样
date_default_timezone_t("ETC/GMT+4");
这种设置模式,也代表了纽约,但是在时间不受到夏令时的影响⽽变化。
结论:
1.当为了给客户(纽约⼈)看时间,应采⽤America/New_York,
2.当计算机为了跑⼀天的数据,⽐如今天卖了多少货物,应该⽤ETC/GMT+4固定时间。不然那错开的1⼩时,我们计算给前⼀天,还是后
⼀天,感觉都不太适合
额外的⼩研究:
date_default_timezone_t("UTC");
这个UTC好像是个什么标准玩意,当设置UTC+4UTC-8的时候,程序输出时间没有改变,所以⼤家设置时区⽤ETC/GMT才能+4-8
本文发布于:2023-01-04 07:56:59,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/89583.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |