大家好我有一个表单接受用户日期条目
dd/mm/yyyy
并以
格式将其转换为美国日期yyyy-mm-dd
如果用户最初没有以正确的格式输入日期,我该如何返回错误?例如的二千零十二分之十二
这是我到目前为止的代码。
// collect values from a form sent with method=get
$uk_date = $_GET["date"];
// convert between date formats
$parts = explode("/", $uk_date, 3);
$us_date = $parts[2] . "-" . $parts[1] . "-" . $parts[0];
echo $us_date.'<br>';
提前致谢!
我正在使用PHP btw。
答案 0 :(得分:1)
为什么不在提交表单后将日期转换为正确的格式,而不是验证日期?这样,用户可以以他们想要的任何格式输入日期
$date = date('Y-m-d', strtotime($_GET["date"]));
答案 1 :(得分:1)
要坚持我看到的代码,我会检查以确保日期的每个爆炸部分都有效,并返回包含错误发生地的错误。
如下所示:
$day_error = 'The day has not been entered correctly';
$month_error = 'The month has not been entered correctly';
$year_error = 'The year has not been entered correctly';
if(!isset(part[0]) | $part[0]<1 | $part[0]>31) return $day_error;
if(!isset(part[1]) | $part[1]<1 | $part[1]>12) return $month_error;
if(!isset(part[2]) | strlen($part[2]) != 4) return $year_error;
然而,我所看到的其他答案似乎更容易,更强大的方法