2010-09-01 16 views

Respuesta

3

que puede hacer:

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

$ old_date = date ($ date); $ old_date_timestamp = strtotime ($ old_date); $ new_date = date ('d-m-Y', $ old_date_timestamp); –

8

Esto no funcionará:

date('m-d-y', strtotime($the_original_date)); 

Si tiene PHP 5.3, que puede hacer:

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

lo contrario:

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

Esto fallará en ciertas situaciones porque strtotime reconoce las fechas en inglés de EE. UU. 03-01-10 se interpretará como el 1 de marzo de 2010, no el 3 de enero de 2010. – stillstanding

+0

este es mi código Testadmin

+0

Respuesta actualizada porque era completamente incorrecta. Gracias @stillstanding. – jasonbar

0

Si el el formato siempre es como el de arriba , Esto debería funcionar:

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

Editar: Es cierto, acabo de ver la respuesta de "codaddict" y sí, si yo todavia dividirlo también se puede concatenarlo ^^ directamente

0

Usted podría utilizar la función sscanf Si usted no tiene PHP 5.3 disponible y hacer uso de la opción de intercambio de argumentos:

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

sscanf análisis sintáctico de la cadena entregada, básicamente, en una matriz basada en la prevista mat, intercambiando el primer argumento coincidente (el día) con el segundo (el mes), dejando intacto el tercero (año) y luego este conjunto se vuelve a unir con el - como separador.

Cuestiones relacionadas