iso 8601 php,PHP-使用ISO 8601显示实际时间

我也这样尝试过:echo date(“ d M Y H:i:s”,strtotime($time));

但是时间没有显示为已保存在数据库中.它显示出几个小时的差异.

数据库有:2016-03-20T23:30:51 00:00

与上面的php echo我得到:2016年3月21日00:30:51

必须在2016年3月20日23:30:51

上例显示了额外的1小时y?

我尝试使用此格式显示小时&分钟,但显示的时间不正确.时间显示相差几个小时.为什么会这样呢?

解决方法:

您的日期格式2016-03-20T23:30:51 00:00会显示GMT日期时间(旁注:php / unix时间戳所使用的同一TimeZone).

所以当你写:

echo date( "d M Y H:i:s", strtotime( $time ) );

您获得正确的日期在系统TimeZone中转换.

您可以使用DateTime类对日期执行更多操作:

$date = new DateTime( $time );

echo $date->format("d M Y H:i:s");

将以原始(GMT)格式打印日期.

$date->setTimezone( new DateTimeZone('Europe/Berlin') );

echo $date->format("d M Y H:i:s");

将在“欧洲/柏林”时区打印日期.

旁注:在ISO 8601 UTC / GTM中保存日期实际上是最佳选择.

>了解更多关于DateTime的信息

>了解更多关于DateTimeZone的信息

标签:timestamp,iso8601,php

来源: https://codeday.me/bug/20191118/2031823.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值