我有这个日期/时间字符串
$dateTime = '2016-11-01T16:00:59:999000Z';
我希望能够删除Z
. 不太确定该怎么做。我试图重做这个:
substr($dateTime, 0, -3);
但无法弄清楚如何Z
在字符串的末尾而不是字符串的末尾进行修剪。
preg_replace("/\d{3}(Z)($)?/", "$1$2", "2016-11-01T16:00:59:999000Z");
// Result: 2016-11-01T16:00:59:999Z
即使Z
不在字符串的末尾也应该做这项工作。
subtr()
如果你知道不需要000
的总是在同一个位置,你可以只使用两次字符串:
<?php
$date = '2016-11-01T16:00:59:999000Z';
echo substr($date, 0, -4).substr($date, -1); // this produces 2016-11-01T16:00:59:999Z
// substr($date, 0, -4) produces 2016-11-01T16:00:59:999
// the period "." is the concatenation operator
// substr($date, -1) produces Z
substr_replace($dateTime, '', -4, 3);
$dateTime = '2016-11-01T16:00:59:999000Z';
$result = substr($dateTime, 0, 23).$dateTime[strlen($dateTime)-1];