繁体   English   中英

检查 PHP 中的日期格式

[英]check the format of a date in 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 语句中,以及根本不包括 else - 但它不起作用。 关于我可以尝试什么的任何建议? 谢谢

您要求用户输入DD-MM-YYYY ,但您的list()调用需要explode()顺序为YYYY-MM-DD

将您的代码更新为:

list($d, $m, $y) = explode('-', $date);

只需反转声明:

list($d, $m, $y) = explode('-', $date);
if(!checkdate($m, $d, $y)){
    die("The date was in the wrong format");
}
// your code here

试试这些

http://roshanbh.com.np/2008/05/date-format-validation-php.html

http://www.plus2net.com/php_tutorial/date-validation.php

最好先在客户端使用 js 进行验证,然后你可以做 php 验证。

为什么页面应该提交

$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 日。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM