2012-07-23 75 views
-1

有沒有辦法迫使PHP創建DateTime對象帶有無效參數,如「2012年2月31日」,而無需將其更改爲2012-03- 02或類似的東西?創建從無效輸入有效的日期,如2012年2月31日

+2

我想你是找錯了方向。爲什麼你首先需要做到這一點? – Peon 2012-07-23 07:22:05

+0

@DainisAbols有一個好點。你應該拒絕無效值。如果給出了「2012-02-31」這樣的無效日期,那麼你怎麼能說它應該是「2012-03-21」? – vascowhite 2012-07-23 07:26:25

+0

好吧,我wnat我的用戶是ALBE輸入日期,如「1391年2月31日」,這是在波斯曆法真正的約會。實際上我想把它當作波斯的約會。 – LN1 2012-07-23 07:30:32

回答

1
<?php 
try { 
    $date = new DateTime('2012-02-31'); // constuct with "impossible date" 
} catch (Exception $e) { 
    echo $e->getMessage(); 
    exit; 
} 

echo $date->format('Y-m-d'); // result: 2012-03-02 
?> 

創建DateTime -object用一個「不可能日期」是沒有問題的(但它變成輸出一個「真正」的日期)。 see it working on codepad

相關問題