正在验证用户日期条目


Validating user date entry

大家好,我有一个接受表单中用户日期输入的表单

dd/mm/yyyy

并将其转换为形式的美国日期

yyyy-mm-dd

如果用户最初没有以正确的格式键入日期,我如何返回错误?例如2012

这是我目前掌握的代码。

// 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.

与其验证日期,为什么不在提交表单后将日期转换为正确的格式呢?这样,用户可以以他们想要的任何格式输入日期

$date = date('Y-m-d', strtotime($_GET["date"]));

为了坚持我看到的代码,我会检查以确保日期的每个分解部分都是有效的,并返回一个错误,其中包括错误发生的位置。

类似以下内容:

$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; 

然而,我看到的其他答案似乎是一种更简单、更稳健的方法