验证用户日期条目

时间:2012-03-18 13:57:22

标签: php

大家好我有一个表单接受用户日期条目

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。

2 个答案:

答案 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; 

然而,我所看到的其他答案似乎更容易,更强大的方法