2011-08-18 15 views

risposta

13

Se siete sicuri sul formato di valore di ingresso, quindi:

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

Si potrebbe anche usare 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'; 
} 

Inoltre, è possibile utilizzare checkdate() per convalidare la data .

+0

Grazie! Questo aiuta molto. –

2

Usa explode per dividere stringa

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

Se siete non certo sul formato di input è anche possibile fare quanto segue:

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

Questo è stato molto utile. –

+0

È fantastico per la semplicità d'uso – Smoke

+0

Questo non è vero. Se ho un formato di input gg/mm/AAAA, questo non funziona. es. Se $ input = '01/02/2015 'allora il tuo metodo dà il giorno e il mese in modo sbagliato! –

2

Un buon approccio è quello di utilizzare date_parse_from_format().

Per esempio:

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

questo dà $dateArray come:

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