PHP ISO 8601的格式转换问题
问题描述:
我想这个字符串 '2016年5月30日15:35:00' 转换为ISO 8601格式,它应该是这样的:PHP ISO 8601的格式转换问题
预期结果: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);
输出:2016-05-30T13:35:00 + 05:30
我有没有什么地方搞错了?或者是否有这种转换更简单的方法?
答
您使用PHP的gmdate
功能,转换日起UTC
格式,而不是你需要使用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
+0
这似乎很明显,但它增加了+02:00到我的时区,我如何特别添加亚洲/加尔各答时区? –
+0
您需要手动将'timezone'设置为'Asia/Kolkata' –
答
用于处理日期我建议Carbon
您的问题更简单的方法将是:
$date = new Carbon("2016-05-30 15:35:00");
echo $date->toIso8601String();
使用日期代替gmdate – splash58
'gmdate'用于UTC取而代之,你需要使用'日期',如'date('Ymd H:i:sP',$ phpdate);' –
感谢您的快速回复:) –