使用带有本地时间设置的 unix 时间戳时,日期时间向前移动一小时
首先我想告诉我的服务器时间设置:它的+3欧洲/伊斯坦布尔 在 php 中,我使用
date_default_timezone_set('Europe/Istanbul');
我在 mysql 表中使用 datetime 类型,当我插入行时,其写法类似于 2011-10-01 15:16:09 其正确没有问题,但在 php 端当我查询和回显日期时间 echo strftime("%d %b %Y, %a %H:%M",strtotime(date("m/d/YH:i",$data['UNIX_TIMESTAMP(date)']))) ; 我把时间提前一小时,比如 16:16:09
我不明白如何计算出来。有什么想法吗?
编辑: 当插入行时,我将日期提供给mysql,它不使用像CURRENT_TIMESTAMP这样的内部日期信息
Firstly i want to tell my server time setting : its +3 Europe/Istanbul
and in php i am using
date_default_timezone_set('Europe/Istanbul');
I use datetime type in my mysql table, when i insert row, its written like 2011-10-01 15:16:09 its correct no problem but in php side when i query and echo date time withecho strftime("%d %b %Y, %a %H:%M",strtotime(date("m/d/Y H:i",$data['UNIX_TIMESTAMP(date)'])));
i get time one hour forward like 16:16:09
i dont understand how to figure it out. Any idea ?
Edit :
when inserting the rows i give the date to mysql, it doesnt use internal date info like CURRENT_TIMESTAMP
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该问题几乎肯定是由于夏令时造成的。如果代码的一部分指定+3,则已经针对夏令时进行了更正。如果代码的其他部分无法识别该日期对于夏令时来说已经是正确的,它将增加一个小时。
我知道这不是一个很好的答案,但我似乎还无法发表评论。
The problem is almost certainly due to daylight savings times. If one part of the code specifies +3, that's already corrected for daylight savings. If the other part of the code doesn't recognize the date as already correct for daylight savings time, it will add an hour.
I know it's not a great answer, but I don't seem to be able to post a comment yet.