Как конвертировать дату из dd-mm-yy в mm-dd-yy

Как конвертировать дату из dd-mm-yy в mm-dd-yy

ниже мой код

 <? $date= date('dm-y'); echo date('md-Y',strtotime($date)); ?> 

но результат: 09-10-2001

мне нужно 09-01-2010

Ты можешь сделать:

 $input = 'dd-mm-yy'; $a = explode('-',$input); $result = $a[1].'-'.$a[0].'-'.$a[2]; 

Это не сработает:

 date('md-y', strtotime($the_original_date)); 

Если у вас есть PHP 5.3, вы можете сделать:

 $date = DateTime::createFromFormat('dm-y', '09-10-01'); $new_date = $date->format('md-Y'); 

В противном случае:

 $parts = explode('-', $original_date); $new_date = $parts[1] . '-' . $parts[0] . '-' . $parts[2]; 

попробуйте эту date("mdy", {your date variable})

Если формат всегда как указано выше, это должно работать:

 $pieces = explode("-", $yourTimestring); $timestamp = mktime(0,0,0,$pieces[1], $pieces[0], $pieces[2]); $newDateStr = date("mdy", $timestamp); 

Правка: Верно, только что увидел ответ от «codaddict», и да, если бы я разделил его, вы могли бы также связать его напрямую ^^

Вы можете использовать функцию sscanf если у вас нет доступного PHP 5.3 и используйте опцию обмена аргументами:

 $theDate = '01-02-03'; print join(sscanf($theDate, '%2$2s-%1$2s-%3$2s'), '-'); # output: 02-01-03 

sscanf основном анализирует предоставленную строку в массиве на основе предоставленного формата, заменяя первый согласованный аргумент (день) вторым (месяц), оставляя третий (год) нетронутым, а затем этот массив снова объединяется с - как разделитель.