2011-05-31 169 views
2

我輸入的日期,要求用戶按以下格式輸入日期:DD-MM-YYYY - 這是再轉換爲YYYY-MM-DD檢查日期的格式在PHP

我想要執行檢查以查看他們是否輸入了正確的格式。也就是說,如果輸入以外DD-MM-YYYY別的就應該產生錯誤消息

即時通訊目前使用

    list($y, $m, $d) = explode('-', $date); 

        if(checkdate($m, $d, $y)){ 

        }else{ 
         die("The date was in the wrong format"); 
        } 

我試圖把下面這個if語句中的代碼如下,以及根本不包括其他 - 但它不起作用。關於我可以嘗試的任何建議?三江源

回答

7

你要求用戶輸入DD-MM-YYYY,但你的電話list()預計explode()順序YYYY-MM-DD

更新你的代碼用於:

list($d, $m, $y) = explode('-', $date); 
+0

斑斑點點謝謝你 – 2011-05-31 20:50:19

1

只是扭轉聲明:

list($d, $m, $y) = explode('-', $date); 
if(!checkdate($m, $d, $y)){ 
    die("The date was in the wrong format"); 
} 
// your code here 
0
$in = '31-05-2011'; 

$ts = date_create_from_format('d-m-Y', $in); 

$out = date_format($ts, 'd-m-Y'); 

if ($in === $out) { 
    ... it's correctly formatted 
} 

注意,這不會發現錯誤,如說'03 -04-11' 於2011年3月4日,當用戶的真正含義是4月11日,2003年