gpt4 book ai didi

php - 将时区偏移量转换为小时和分钟保留符号

转载 作者:行者123 更新时间:2023-11-29 00:12:12 24 4
gpt4 key购买 nike

假设我有这样的偏移量:

$secOffset =  -28800 

我需要它转换为可用于 MYSQL 函数的格式 convert_tz()

如果我使用 gmdate("h:i", secOffset) 我得到的 16:00 几乎是正确的,但它错过了减号 -(这很重要)

替代方法:

假设我有一个时间字符串 America/Los_Angeles 并且我想转换为对 MYSQL 函数有用的偏移量 convert_tz()

最终的预期输出是 GMT 的偏移量,因此给定了一个时区。
例如,有一个像 America/Los_Angeles 这样的时区,输出应该是:−08:00

我在使用 Magento/Zend,所以如果 Zend 上有任何可用的功能,我可以接受基于它的答案。

最佳答案

您应该为此使用 DateTimeZoneDateInterval 类:

$tzid = 'America/Los_Angeles';

$tz = new DateTimeZone($tzid);
$date = new DateTime('now', $tz);

// create a new date offset by the timezone offset
// gets the interval as hours & minutes
$offset = $tz->getOffset($date) . ' seconds';
$dateOffset = clone $date;
$dateOffset->sub(DateInterval::createFromDateString($offset));

$interval = $dateOffset->diff($date);
$formatted = $interval->format('%R%H:%I');

这有点复杂,因为您首先获得以秒为单位的时区偏移量,然后使用 DateTime 帮助将该间隔转换为小时/分钟。

关于php - 将时区偏移量转换为小时和分钟保留符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com