1

我会收到物流合作伙伴的回复,比如2013-03-28T13:15:00+05:30我想要 IST 格式的日期。我如何正确转换它。

$addTime = explode('+',$response->TrackDetails->ActualDeliveryTimestamp);
if($addTime[1] == '05:30'){
$time = '';
$time = strtotime('+5:30 hrs',$addTime[0]); 
echo date('Y-m-d H:i:s',strtotime($addTime[0]));
}

我试过上面的代码。但不能正常工作。

4

1 回答 1

0
$addTime = explode('+','2013-03-28T13:15:00+05:30');
list($hours, $minutes) = explode(':', $addTime[1]);

$dt = new DateTime($addTime[0]);
$dt->add(new DateInterval('PT'.intval($hours).'H'));
$dt->add(new DateInterval('PT'.intval($minutes).'M'));
echo $dt->format('Y-m-d H:i:s');

看到它在行动

编辑

这更准确,尽管由于夏令时结果不是您所期望的:

$dt = new DateTime('2013-03-28T13:15:00+05:30');
$dt->setTimeZone(new DateTimeZone('UTC'));
echo $dt->format('Y-m-d H:i:s');

看到它在行动

于 2013-03-28T13:42:48.240 回答