不同时区的时间互相转换

<?php
/**
 * @param string $dateTime 时间,如:2020-04-22 10:10:10
 * @param string $fromZone 时间属于哪个时区
 * @param string $toZone   时间转换为哪个时区的时间
 * @param string $format   时间格式,如:Y-m-d H:i:s
 * 时区选择参考:https://www.php.net/manual/zh/timezones.php 常见的如:UTC,Asia/Shanghai
 * 时间格式参考:https://www.php.net/manual/zh/datetime.formats.php
 *
 * @return string
 */
function dateTimeChangeByZone($dateTime, $fromZone, $toZone, $format = 'Y-m-d H:i:s')
{
    $dateTimeZoneFrom = new DateTimeZone($fromZone);
    $dateTimeZoneTo   = new DateTimeZone($toZone);
    $dateTimeObj      = DateTime::createFromFormat($format, $dateTime, $dateTimeZoneFrom);
    $dateTimeObj->setTimezone($dateTimeZoneTo);

    return $dateTimeObj->format($format);
}

echo dateTimeChangeByZone('2020-04-22 10:10:10', 'UTC', 'Asia/Shanghai', 'Y-m-d H:i:s');

结果:2020-04-22 18:10:10

发布了52 篇原创文章 · 获赞 54 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/weixin_37909391/article/details/105769023