datetime — обрезать строку перед символом в переполнении стека

У меня есть эта строка даты / времени

$dateTime = '2016-11-01T16:00:59:999000Z';

Я хотел бы иметь возможность удалить 3 цифры перед Z.
Не совсем уверен, как это сделать. Я пытался переделать это:

substr($dateTime, 0, -3);

но не мог понять, как сделать это урезать до Z а не в конце строки.

1

Решение

preg_replace("/\d{3}(Z)($)?/", "$1$2", "2016-11-01T16:00:59:999000Z");
// Result: 2016-11-01T16:00:59:999Z

Должен делать работу, даже если Z будет не в конце строки.

2

Другие решения

substr_replace($dateTime, '', -4, 3);
1

Вы можете просто 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
1

$dateTime = '2016-11-01T16:00:59:999000Z';

$result = substr($dateTime, 0, 23).$dateTime[strlen($dateTime)-1];
0
По вопросам рекламы [email protected]