碰到一个场景,得到一串输入时间格式,但是需要转换成我本地的时间,输入的时间格式是 UTC 时间格式:yyyy-MM-ddTHH:mm:ss.SSSZ
* yyyy
表示年份四位
* MM
表示月份两位表示,01 ~ 12
* dd
表示多少号,01 ~ 31
* T
表示日期个时间的分隔符
* HH
表示小时 01 ~ 24
* mm
表示分钟 01 ~ 60
* ss
表示秒 01 ~ 60
* SSS
表示完整毫秒数,为三位小数。
* Z
是表示时区,
如下面这几种时间格式:
2018-01-01T00:00:00.000Z
默认使用 0 时区
2018-01-01T00:00:00.000+0800
东八区
* 转换需求,我本地在东八区,给的输入时间是: 2018-01-01T12:00:00.000+0100
,因为给定的时间 +0100
时区,而我在的是 +0800
时区,所以最后转换成我本地的时间就变成 2018-01-01 19:00:00.000
,比输入多七个小时。
* 代码实现, 需要使用 Carbon 扩展包
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php use Carbon\Carbon; $input = 2018-01-01T12:00:00.000+0100; // 实例化一个 Carbon 对象 $carbon = Carbon::make($input); // 转换时区 $carbon->setTimezone('PRC'); // 输出查看 echo $carbon->toDateTimeString(); |
有用喔?