[英]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.