2016-10-28 6 views
1

У меня есть эта строка даты/времениОбрезка строка перед символом в PHP

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

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

substr($dateTime, 0, -3); 

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

+0

Эй, не уверен, сколько раз этот код повторяется, но http://stackoverflow.com/a/40305677/2191572 является самым медленным, а затем http://stackoverflow.com/a/40305493/2191572 и http://stackoverflow.com/a/40305555/2191572 является самым быстрым. Итерации 100k в PHP 5.6.20 дают 0,173 секунды, 0,039 секунды и 0,25 секунды. – MonkeyZeus

ответ

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

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

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 
0
$dateTime = '2016-11-01T16:00:59:999000Z'; 

$result = substr($dateTime, 0, 23).$dateTime[strlen($dateTime)-1]; 
+1

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – andreas

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

Мне нравится это лучше, чем мой собственный ответ, но я не могу уклониться, если вы не дадите объяснение. – MonkeyZeus

+0

:) Требовалось было удалить 3 цифры перед Z. substr_replace сначала найти эту подстроку и заменить пустой строкой: Для справки http://php.net/manual/en/function.substr-replace.php –

+0

Да, я знать; Я могу прочитать ваш код. Добавьте комментарий своего кода, чтобы OP мог легко читать и понимать в будущем. См. Мой ответ для примера хороших комментариев. – MonkeyZeus

 Смежные вопросы

  • Нет связанных вопросов^_^