猿问

使用 PHP 将日期和时间转换为其他日期和时间

我2019-11-26T16:30:00+01:00从 API 获取格式的日期,并希望将其转换为Di. 26. Nov. 2019 / 16:30.


我正在使用以下代码,但总是有 1 小时的差异:Di. 26. Nov. 2019 / 15:30 Uhr.


如果我使用2019-11-26T16:30:00+02:00- 我会得到Di. 26. Nov. 2019 / 14:30 Uhr(提前 2 小时)。


这是我的php代码:


$timstp = strtotime('2019-11-26T16:30:00+1:00');

echo date('d.m.Y H:i:s', $timstp);

我怎样才能得到正确的日期?


蝴蝶刀刀
浏览 120回答 2
2回答

慕森王

使用 DateTime 类。format 方法以英文返回结果。$input = '2019-11-26T16:30:00+1:00';$date = date_create($input)->format('D. d. M. Y /H:i \U\h\r');echo $date;  //Tue. 26. Nov. 2019 /16:30 Uhr对于其他语言(如德语)的输出,我推荐 DateTime 扩展类dt。$input = '2019-11-26T16:30:00+1:00';$date = dt::create($input)->formatL('D d. M Y / H:i \U\h\r','de_DE');echo $date; //Di. 26. Nov. 2019 / 16:30 Uhr更新:API 是否从不同时区获取条目?如果是这样,问题是需要什么?时区的本地时间或可比性的唯一时基?上面的示例显示了时区的本地时间。要创建一个唯一的基础,DateTime 对象可以如何转换为不同的时区 UTC。$input = '2019-11-26T15:30:00+5:00';$date = date_create($input)  ->setTimeZone(new DateTimeZone('UTC'))  ->format('D. d. M. Y / H:i:s');echo $date;  //Tue. 26. Nov. 2019 / 10:30:00

慕哥6287543

试试这个$datetime = new DateTime('2019-11-26T16:30:00+1:00');echo $datetime->format('d.m.Y H:i:s');在此处查找有关 DateTime 的更多详细信息
随时随地看视频慕课网APP
我要回答