php - 使用 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);
我怎样才能得到正确的日期?
解决方案
使用 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
推荐阅读
- asp.net-core - .NET 5 API 添加 Access-Control-Allow-Origin 标头 - 使用 Ionic 5.5
- google-chrome - Google Chrome 浏览器 - 搜索时返回页面中的开始搜索位置
- react-native - react-native-fs 在模拟器上有效但在实际设备上无效的可能原因
- javascript - 如何将卡尔曼滤波器与旋转对象一起使用
- c++ - 如何验证类成员函数是内联函数?
- reactjs - rc-datepicker DatePickerInput 图标没有出现
- flutter - Flutter:Android模拟器内存不足
- java - 在 Spring MVC 中获取 HttpServletRequest
- javascript - 在 Javascript 中提交表单后,在页面刷新之前立即获取表单处理数据
- youtube - Youtube Data API:插入视频验证过程