регулярное выражение — PHP преобразовать строку в период даты

Интересно, как это сделать?
Я имею:

$datePeriod = '2010-09-13 - 2010-09-19'

Мне нужен вывод:

09/13/10 - 09/19/10

Я думаю, сделать это с помощью функций strtotime () и date ()

date('m/d/Y \- \ m/d/Y', strtotime($datePeriod));

но strtotime () не принимает эту строку напрямую ‘2010-09-13 — 2010-09-19’ мне нужно нарезать, обрезать, прежде чем я передам ее strtotime () или date ()? Это правильный подход или более простой метод, чем выполнение операций преобразования?

1

Решение

Ты можешь использовать preg_replace_callback здесь с strtotime а также date:

$datePeriod = '2010-09-13 - 2010-09-19';
echo preg_replace_callback('/\b(\d{4}-\d{2}-\d{2})\b/', function($m) {
return date('m/d/y', strtotime($m[1])); }, $datePeriod);
//=> 09/13/10 - 09/19/10
2

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

php форматирование даты требует ввода одной даты и, следовательно, вам нужно разделить и обрезать даты.
проще всего в этом случае будет использовать preg_split

$dates = preg_split("/ \- /",$string);

Теперь у вас есть 2 даты в переменной $ date, которые вы можете конвертировать отдельно, используя strtotime, как предложено в вопросе, а затем объединяйте их по мере необходимости

1

По вопросам рекламы [email protected]