2013-01-09 100 views
0

我希望我的用户能够日期格式更改为为所欲为:你如何验证日期格式?

$dateformat = $_POST['format']; 
$datestamp = date($dateformat,$timestamp); 

如何检查是否$dateformat是正确有效的日期格式字符串?

+0

我知道,我只是想知道如果PHP函数建立这个,我找不到。可能与try/catch? – user962449

+0

你应该使用正则表达式。您还可以尝试使用'$ datestamp = strototime($ _ POST ['format']);' – Kermit

+0

这取决于您如何定义日期格式。 – samayo

回答

0

我建议您向用户提供各种date格式的选择下拉列表,然后将其存储在数据库中。然后,您可以将他们选择的格式插入到date()函数的第一个参数中。

0

看看Zend_Date,但不知道将06-03-2012解释为6月3日或6月3日,这是不可能的。

你知道吗? 12年12月12日的日期,是欧洲人和美国人可以谈谈天没有误会;-)

1
if(strtotime($_POST['format']) !== FALSE) 
{ 
    echo 'valid date'; 
} 
else 
{ 
    echo 'invalid date'; 
} 

,但不会对日期有工作一年> 2048不会在当前的PHP定义

1

checkdate()会告诉你这个日期是否可以被解析,你应该决定坚持一定的格式:

strtotime()会让你知道,如果一个日期字符串可以被解析 - 你可以通过它的任何字符串。如果日期无法解析,则函数返回false。

附注:我不会让用户选择如何输入日期。这对你来说会很复杂,显然 - 也是作为用户,我会问自己我应该如何输入日期,因为大多数用户将被用于指示日期。为什么不为他们提供年,月和日期的简单下拉菜单,然后在checkdate()中使用这三个参数?