检查PHP中日期的格式

时间:2011-05-31 20:40:19

标签: php

我有一个日期输入,要求用户以下列格式输入日期: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 - 但它不起作用。关于我可以尝试的任何建议?谢谢你

4 个答案:

答案 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日时。