2012-07-23 72 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

相关问题