我有一个日期输入,要求用户以下列格式输入日期:DD-MM-YYYY - 然后转换为YYYY-MM-DD
我想检查他们是否输入了正确的格式。即如果输入除DD-MM-YYYY以外的任何其他内容,则应该产生错误消息
我目前正在使用以下
list($y, $m, $d) = explode('-', $date);
if(checkdate($m, $d, $y)){
}else{
die("The date was in the wrong format");
}
我已经尝试将if后面的代码放在if语句中,以及根本不包括else - 但它不起作用。关于我可以尝试的任何建议?谢谢你
答案 0 :(得分:7)
您要求用户输入 DD-MM-YYYY ,但您的list()
来电要求explode()
订单为 YYYY-MM-DD
将代码更新为:
list($d, $m, $y) = explode('-', $date);
答案 1 :(得分:1)
只是颠倒声明:
list($d, $m, $y) = explode('-', $date);
if(!checkdate($m, $d, $y)){
die("The date was in the wrong format");
}
// your code here
答案 2 :(得分:0)
试试这些
http://roshanbh.com.np/2008/05/date-format-validation-php.html
http://www.plus2net.com/php_tutorial/date-validation.php
最好先使用js在客户端验证然后你可以做php validtaion。
为什么页面应该提交
答案 3 :(得分: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
}
请注意,这不会出现错误,例如2011年3月4日的'03 - 04-11',当用户真正意味着2003年4月11日时。