2011-08-18 7 views

Respuesta

13

Si está seguro sobre el formato del valor de entrada , entonces:

$orderdate = explode('-', $orderdate); 
$month = $orderdate[0]; 
$day = $orderdate[1]; 
$year = $orderdate[2]; 

Usted podría también utilizar preg_match():

if (preg_match('#^(\d{2})-(\d{2})-(\d{4})$#', $orderdate, $matches)) { 
    $month = $matches[1]; 
    $day = $matches[2]; 
    $year = $matches[3]; 
} else { 
    echo 'invalid format'; 
} 

Además, puede utilizar checkdate() para validar la fecha .

+0

Gracias! Esto ayuda mucho. –

2

Uso explode para dividir cadena

list($m,$d,$y)=explode('-',$date); 
4
list($month, $day, $year) =explode("-",$orderdate); 
14

Si está no determinado sobre el formato de entrada también se puede hacer lo siguiente:

$time = strtotime($input); 
$day = date('d',$time); 
$month = date('m',$time); 
$year = date('Y',$time); 
+0

Esto fue muy útil. –

+0

Es genial para fácil de usar – Smoke

+0

Esto no es verdad. Si tengo un formato de entrada dd/mm/YYYY, entonces esto no funciona. por ej. Si $ input = '01/02/2015 '¡entonces su método da el día y el mes incorrectamente! –

2

Un buen método es usar date_parse_from_format().

Para su ejemplo:

$dateStr = '03-27-2015'; 
$dateArray = date_parse_from_format('m-d-Y', $dateStr); 

Esto da como $dateArray:

Array 
(
    [year] => 2015 
    [month] => 3 
    [day] => 27 
    [hour] => 
    [minute] => 
    [second] => 
... 
) 
Cuestiones relacionadas