时区操作

引入类

use zxf/Tools/TimeZone;

实例化

$converter = TimeZone::instance();

时区转换

// 1、当上海时间是 2024-04-08 12:00:00 时,计算出纽约的当地时间(返回指定时间格式字符串)
$converter->toTimeZone('2024-04-08 12:00:00','Asia/Shanghai', 'America/New_York','Y-m-d H:i:s');

计算时差

// 2、计算上海和纽约的时差 
$converter->timeZoneDiff('Asia/Shanghai', 'America/New\_York',\$useAbs = true);

计算和 UTC 时区(0时区)的时差

// 3、计算上海和 UTC 时区(0时区)的时差 
$converter->getTimeZoneOfUTC('Asia/Shanghai');

设置默认时区

// 4、设置默认时区 
TimeZone::setTimeZone('PRC');

格式化时间

5、格式化时间 
$converter->format('1712632337', 'Y-m-d H:i:s');

demo

/**
 * 时区转换器
 *      1. toTimeZone: 计算 A 时区的在某个时间时 B 时区的当地时间(返回指定时间格式字符串)「支持使用数组方式同时处理多个时间」
 *      2. toTimeZoneTimestamp: 计算 A 时区的在某个时间时 B 时区的当地时间(返回时间戳)「支持使用数组方式同时处理多个时间」
 *      3. timeZoneDiff: 计算 A 时区和 B 时区的时差
 *      4. getTimeZoneOfUTC: 计算 A 时区和 UTC 时区(0时区)的时差
 *      5. setTimeZone: 计算默认时区
 *      6. format: 格式化时间「支持使用数组方式同时处理多个时间」
 *
 * eg:
 *      $converter = TimeZone::instance();
 *      // 1、当上海时间是 2024-04-08 12:00:00 时,计算出纽约的当地时间(返回指定时间格式字符串)
 *      $converter->toTimeZone('2024-04-08 12:00:00','Asia/Shanghai', 'America/New_York','Y-m-d H:i:s');
 *      $converter->toTimeZone(['2024-04-08 12:00:00','1712632337'],'Asia/Shanghai', 'America/New_York','Y-m-d H:i:s');
 *      // 2、当上海时间是 2024-04-08 12:00:00 时,计算出纽约的当地时间(返回时间戳)
 *      $converter->toTimeZoneTimestamp('2024-04-08 12:00:00','Asia/Shanghai', 'America/New_York');
 *      // 3、计算上海和纽约的时差
 *      $converter->timeZoneDiff('Asia/Shanghai', 'America/New_York',$useAbs = true);
 *      // 4、计算上海和UTC 时区(0时区)的时差
 *      $converter->getTimeZoneOfUTC('Asia/Shanghai');
 *      // 5、设置默认时区
 *      TimeZone::setTimeZone('PRC');
 *      // 6、格式化时间
 *      $converter->format('1712632337', 'Y-m-d H:i:s');
 */