计算具有不同时区的 php 个 ATOM 日期字符串之间的时差
Calculate Time Difference Between php ATOM date strings with different timezones
我正在尝试 运行 循环处理一组日期。
对于我拥有的每个循环项目:
- 一个
ATOM
时间(总是UTC+2)
- 一个
ATOM
时间(因 UTC+/-x 而异)
例如:
- post 日期 = 2017-05-13T01:51:51+02:00 - 未来日期 = 2017 -05-13T01:00:00-03:00
- post 日期 = 2017-04-22T19:26:31+02:00 - 未来日期 = 2017 -04-29T05:00:00+01:00
我想知道的:
- 在 foreach 循环中,如何获得每个相对 'future date' 相对于 'post date'
的时间差
- 我不确定是否需要将每个字符串转换为 UTC 或使用偏移量
我已经使用 date_default_timezone_set()
设置了各自的日期('post date' 和 'future date'
非常感谢!
如果您使用 ATOM 设置日期时间 class,一切都会为您完成。您需要做的就是拿一个diff
。例如
$postdate = '2017-05-13T01:50:50+02:00';
$futuredate = '2017-05-13T01:51:51-03:00';
$pd = new DateTime($postdate);
$fd = new DateTime($futuredate);
echo $pd->format(DateTime::ATOM) . PHP_EOL;
echo $fd->format(DateTime::ATOM) . PHP_EOL;
$diff = $pd->diff($fd);
echo $diff->format('%y years %m months %d days %h hours %i minute %s seconds');
生成结果
2017-05-13T01:50:50+02:00
2017-05-13T01:51:51-03:00
0 years 0 months 0 days 5 hours 1 minute 1 seconds
我正在尝试 运行 循环处理一组日期。
对于我拥有的每个循环项目:
- 一个
ATOM
时间(总是UTC+2) - 一个
ATOM
时间(因 UTC+/-x 而异)
例如:
- post 日期 = 2017-05-13T01:51:51+02:00 - 未来日期 = 2017 -05-13T01:00:00-03:00
- post 日期 = 2017-04-22T19:26:31+02:00 - 未来日期 = 2017 -04-29T05:00:00+01:00
我想知道的:
- 在 foreach 循环中,如何获得每个相对 'future date' 相对于 'post date' 的时间差
- 我不确定是否需要将每个字符串转换为 UTC 或使用偏移量
我已经使用 date_default_timezone_set()
设置了各自的日期('post date' 和 'future date'
非常感谢!
如果您使用 ATOM 设置日期时间 class,一切都会为您完成。您需要做的就是拿一个diff
。例如
$postdate = '2017-05-13T01:50:50+02:00';
$futuredate = '2017-05-13T01:51:51-03:00';
$pd = new DateTime($postdate);
$fd = new DateTime($futuredate);
echo $pd->format(DateTime::ATOM) . PHP_EOL;
echo $fd->format(DateTime::ATOM) . PHP_EOL;
$diff = $pd->diff($fd);
echo $diff->format('%y years %m months %d days %h hours %i minute %s seconds');
生成结果
2017-05-13T01:50:50+02:00
2017-05-13T01:51:51-03:00
0 years 0 months 0 days 5 hours 1 minute 1 seconds