在php中更改ISO日期时间格式

时间:2016-01-07 20:25:35

标签: php regex

我使用以下代码获取ISO datetime

$date= date("c");
echo $date;

返回类似下面的内容

2016-01-07T20:18:46+00:00

但我使用的API告诉它格式错误,需要采用以下格式:

2016-01-07T20:35:06+00Z

我需要在结尾删除:00并添加Z

我是正则表达式的新手,任何人都可以帮助我理解正则表达式并告诉我们需要哪种格式。

2 个答案:

答案 0 :(得分:1)

您可以使用strrpos找到:的最后一次出现,并使用substr获取子字符串,然后添加Z

$date= date("c");
echo "Current: $date\n";      // => 2016-01-07T21:58:08+00:00
$new_date =  substr($date, 0, strrpos($date, ":")) . "Z";
echo "New    : " . $new_date; // => 2016-01-07T22:10:54+00Z

请参阅demo

答案 1 :(得分:1)

您需要专门定义日期格式。

如果微秒将始终为00

date("Y-m-d H:i:s+00\Z");

否则,请使用这个小逻辑

date("Y-m-d H:i:s+"). substr((string)microtime(), 2, 2) . 'Z';

更多信息。

http://php.net/manual/en/function.date.php