PHP:将本地时间转换为UTC

5
假设我收到了一个字符串,例如08/22/2015 10:56 PM,并且该日期/时间字符串始终只指向一个特定的时区。我需要将其转换为这种格式:'Ymd\THis\Z',这是iCal格式。
  1. 如何将该字符串转换为协调世界时,并转换为'Ymd\THis\Z'
  2. 然后如何添加30分钟到该日期/时间?
一直在尝试使用strtotime和DateTime进行处理,但担心自己走了弯路。也许有更简单和直接的解决方案?

我认为没有比使用DateTime等更“简单”的方法。 - m02ph3u5
2个回答

19

您可以使用DateTime,以下是示例:

<?php

$datetime = '08/22/2015 10:56 PM';
$tz_from = 'America/New_York';
$tz_to = 'UTC';
$format = 'Ymd\THis\Z';

$dt = new DateTime($datetime, new DateTimeZone($tz_from));
$dt->setTimeZone(new DateTimeZone($tz_to));
echo $dt->format($format) . "\n";

$minutes = 30;
$dt->add(new DateInterval('PT' . $minutes . 'M'));
echo $dt->format($format) . "\n";

那加上30分钟怎么样? - StackOverflowNewbie

-1
根据主题行;要将本地时间转换为UTC,您需要给定本地时间的时区名称,或者如果您在GMT中具有时区偏移量,则可以尝试以下操作:
//assume time zone is +3 hours
$offset = 3 * 60 * 60;
$date = date('H:i:s', strtotime("10:56 PM")- $offset);
echo $date;

这将输出:19:56:00,即协调世界时时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接