2011-08-18 41 views

Trả lời

13

Nếu bạn chắc chắn về định dạng của giá trị đầu vào, sau đó:

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

Bạn cũng có thể sử dụng 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'; 
} 

Ngoài ra, bạn có thể sử dụng để xác nhận checkdate() ngày .

+0

Cảm ơn! Điều này giúp ích rất nhiều. –

2

Sử dụng explode để chia chuỗi

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

Nếu bạn là không chắc chắn về định dạng đầu vào bạn cũng có thể làm như sau:

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

Điều này rất hữu ích. –

+0

Tuyệt vời của nó để dễ sử dụng – Smoke

+0

Điều này là không đúng sự thật. Nếu tôi có một định dạng đầu vào dd/mm/YYYY thì điều này không hoạt động. ví dụ: nếu $ input = '01/02/2015 'thì phương pháp của bạn cho ngày và tháng sai đường! –

2

Một cách tiếp cận tốt nhất là sử dụng date_parse_from_format().

Ví dụ của bạn:

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

Điều này cho phép $dateArray như:

Array 
(
    [year] => 2015 
    [month] => 3 
    [day] => 27 
    [hour] => 
    [minute] => 
    [second] => 
... 
) 
Các vấn đề liên quan