Php 将UTC0更改为UTC+;1/+;2.
我从我的SQL数据库中得到了一个时间戳:Php 将UTC0更改为UTC+;1/+;2.,php,Php,我从我的SQL数据库中得到了一个时间戳:$DBdata='2019-10-10 12:25:59',这个日期是UTC+0。我住在丹麦,那里有以下UTC 欧盟中部时间冬季(UTC+1) 欧盟中部夏季(UTC+2) 这些UTC从夏季到冬季的变化每年都有不同的日期 夏季时间 •2019年3月30日星期六至3月31日星期日之间的夜晚 •2020年3月28日星期六至3月29日星期日之间的夜晚 •2021年3月27日星期六至3月28日星期日之间的夜晚 •2022年3月26日星期六至3月27日星期日之间的夜晚
$DBdata='2019-10-10 12:25:59'
,这个日期是UTC+0
。我住在丹麦,那里有以下UTC
欧盟中部时间冬季(UTC+1)
欧盟中部夏季(UTC+2)
这些UTC从夏季到冬季的变化每年都有不同的日期
夏季时间
•2019年3月30日星期六至3月31日星期日之间的夜晚
•2020年3月28日星期六至3月29日星期日之间的夜晚
•2021年3月27日星期六至3月28日星期日之间的夜晚
•2022年3月26日星期六至3月27日星期日之间的夜晚
•2023年3月25日星期六至3月26日星期日之间的夜晚
冬季时间
•2019年10月26日星期六至10月27日星期日之间的晚上
•2020年——10月24日星期六至10月25日星期日之间的夜晚
•2021年10月30日星期六至10月31日星期日之间的夜晚
•2022年10月29日星期六至10月30日星期日之间的夜晚
•2023年10月28日星期六至10月29日星期日之间的夜晚
是否可以使用正确的+1/+2进行if语句以更改这些UTC?
也许是这样的:
$Winter=gmdate('Y-m-d H:i:s',标准时间('WinterUTC');
$Summer=gmdate('Y-m-d H:i:s',标准时间('SummerUTC');
如果($$DBdata>=$Winter)&($$DBdata您可以使用和生成考虑时区的日期:
gmdate:格式化GMT/UTC日期/时间
返回:
2019-10-10 22:25:59
2019-10-10 14:25:59
2019-02-10 13:25:59
从文件中:
I
(大写字母I)日期是否在夏令时:1
如果是夏令时,0
否则
考虑到时区,您可以使用和生成日期:
gmdate:格式化GMT/UTC日期/时间
返回:
2019-10-10 22:25:59
2019-10-10 14:25:59
2019-02-10 13:25:59
从文件中:
I
(大写字母I)日期是否在夏令时:1
如果是夏令时,0
否则
这是php脚本默认时区的简单更改,然后显示时间:
这是php脚本默认时区的简单更改,然后显示时间:
使用DateTime类,您可以轻松地将日期/时间转换为任何其他时区
function convertTimeZone($strDateTime, $sourceTimeZone, $targetTimeZone){
return date_create($strDateTime, new DateTimeZone($sourceTimeZone))
->setTimeZone(new DateTimeZone($targetTimeZone))
->format('Y-m-d H:i:s');
}
夏令时示例
$localTime = convertTimeZone('2019-10-10 12:25:59', 'UTC', 'Europe/Copenhagen');
echo $localTime."<br>";
冬季示例
$localTime = convertTimeZone('2019-02-10 12:25:59', 'UTC', 'Europe/Copenhagen');
echo $localTime."<br>";
注意:由于某些系统存在已知问题和限制,不建议使用基于stringtotime的解决方案。使用DateTime类,您可以轻松地将日期/时间转换为任何其他时区
function convertTimeZone($strDateTime, $sourceTimeZone, $targetTimeZone){
return date_create($strDateTime, new DateTimeZone($sourceTimeZone))
->setTimeZone(new DateTimeZone($targetTimeZone))
->format('Y-m-d H:i:s');
}
夏令时示例
$localTime = convertTimeZone('2019-10-10 12:25:59', 'UTC', 'Europe/Copenhagen');
echo $localTime."<br>";
冬季示例
$localTime = convertTimeZone('2019-02-10 12:25:59', 'UTC', 'Europe/Copenhagen');
echo $localTime."<br>";
注意:不推荐基于stringtotime的解决方案,因为某些系统存在已知问题和限制。好的,我有这个日期:$date='2019-09-25 11:19:50';
时区是date\u default\u timezone\u set('Europe/Copenhagen')
,它应该打印出日期为2019-09-25 13:19:50
,但它没有打印出来?我做错了什么?我使用了Y-m-d H:i:s
好的,我有这个日期:$date='2019-09-25 11:19:50'
时区是date\u default\u时区集('Europe/Copenhagen'))
,到了那个日期,它应该打印出来,但它没有打印出来?我做错了什么?我使用了Y-m-d H:i:s
,这正是我想的!谢谢!!你能让它说是CET还是CEST吗?在像:2019-10-10 21:11:34这样的时间之后,使用格式字符串中的格式字符t添加CET/CEST.p.E-m-d H:i:s T'。请参阅:日期格式参数谢谢!我将尝试;)重要提示:PHP不能展望未来。如果欧盟取消夏季时间,您还需要更新PHP组件!这正是我所想的!谢谢!!您能让它说是CET还是CEST吗?时间过后,如:2019-10-10 21:11:34 CESTU在格式字符串中使用格式字符T添加CET/CEST.p.E.“Y-m-d H:i:s T”。请参阅:日期格式参数谢谢!我会试试;)重要提示:PHP不能展望未来。如果欧盟取消了夏季,您还需要更新PHP组件!