PHP ISO 8601 格式转换问题

PHP ISO 8601 format conversion issue

我想将这个字符串 '2016-05-30 15:35:00' 转换成 ISO 8601 格式,应该如下所示:

Expected result : 2016-05-30T15:35:00+05:30

我试过跟随,但在输出中少了 2 小时,

$phpdate = strtotime('2016-05-30 15:35:00');

echo gmdate('Y-m-d\TH:i:s\+05:30', $phpdate);

Output : 2016-05-30T13:35:00+05:30

我是不是哪里弄错了?还是有更简单的转换方法?

为了更简单地处理日期,我推荐 Carbon

对于您的问题,它将是:

$date = new Carbon("2016-05-30 15:35:00");
echo $date->toIso8601String();

您使用的 gmdate function of PHP which converts date into UTC format instead you need to use date 函数类似于

date_default_timezone_set("Asia/Kolkata");//Set your timezone to Asia/Kolkata

$phpdate = strtotime('2016-05-30 15:35:00');

echo date('c', $phpdate);// 2016-05-30T13:35:00+05:30 if your timezone is of Asia/Kolkata