Регулярное выражение PHP для изменения формата даты - PullRequest
0 голосов
/ 28 февраля 2012

Я почти 10 часов пытался изменить формат даты в соответствии со своими потребностями, но безуспешно.Я пробовал функции Preg_Replace Strotime со следующими примерами.

Текущий формат даты: 25-25-2006. Хотите преобразовать в: 2006-02-25

Вот список примеров, которые япопробовал:

publishdate = "02-20-2012";  
echo preg_replace("/\d{2}-\d{2}-\d{4}/","$3/$1/$2",$publishdate); 

$dateString= '2006-09-14';
echo date("m/d/Y", strtotime($dateString));



$dateString1= '02-20-2012';
echo date("Y/m/d", strtotime($dateString1));



$date1 = '05-25-2010';
echo date('Y-m-d', strtotime($date1));

$dateString2= '02-20-2012';
echo preg_replace("/(\d{2})-(\d{4})-(\d{2})/","$2/$3/$1",$dateString2);  

Ответы [ 2 ]

1 голос
/ 01 марта 2012

ad regexp:

Вы должны пометить группы захвата в своем регулярном выражении, если хотите использовать частичные совпадения в подстановочном выражении! Вы делаете это, заключая части своего шаблона регулярных выражений в круглые скобки. поэтому ваше регулярное выражение должно быть /(\d{2})-(\d{2})-(\d{4})/. больше информации в regexp документах , особенно в разделе подшаблонов .

Время объявления:

если вы выберете - в качестве разделителя части даты, дни должны быть первыми. таким образом, 02/20/2012 будет работать так же, как и 20-02-2012, тогда как 02-20-2012 не будет. для получения более подробной информации о поддерживаемых форматах даты / времени обратитесь к документам .

0 голосов
/ 12 июня 2015

Самый простой способ - использовать date_create_from_format:

$date1='02-25-2006';
echo($date1);
echo "<br>";
$newdate = date_format(date_create_from_format('m-d-Y', $date1),'Y-m-d'); 
echo $newdate;

Тогда вывод будет 2006-02-25 .

...