Интересно, как это сделать?
Я имею:
$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 ()? Это правильный подход или более простой метод, чем выполнение операций преобразования?
Ты можешь использовать 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
php форматирование даты требует ввода одной даты и, следовательно, вам нужно разделить и обрезать даты.
проще всего в этом случае будет использовать preg_split
$dates = preg_split("/ \- /",$string);
Теперь у вас есть 2 даты в переменной $ date, которые вы можете конвертировать отдельно, используя strtotime, как предложено в вопросе, а затем объединяйте их по мере необходимости