我正在尝试在我的代码中验证像 1985 年 1 月 17 日这样的日期。
这是我正在使用的功能:
function fncDate($date){
$d = DateTime::createFromFormat('DD-M-YY', $date);
$result = $d && $d->format('DD-M-YY') == $date;
if(!$result){
return "Date should be in the following format: DD-MMM-YYYY";
}
}
这总是返回假:fncDate("17-JAN-1985");
我做错了什么吗?
谢谢
看起来用于读取(解析)日期的格式字符串应该是'd-M-Y'
,而不是"DD-M-YY"。当你比较时,你需要把两边都大写,因为PHP将生成"Jan"而不是"JAN"。此外,您完全忘记返回值。
这是完整的工作代码:
function fncDate($date){
$d = DateTime::createFromFormat('d-M-Y', $date);
$result = $d && strtoupper($d->format('d-M-Y')) == strtoupper($date);
if(!$result){
return "Date should be in the following format: DD-MMM-YYYY";.
}
return $result;
}
试试这个:
function fncDate($date)
{
$date = date_create($date);
$date1= date_format($date, 'Y-m-d ');
$result = $date1 && $date1 == $date;
if(!$result)
{
echo "Date should be in the following format: DD-MMM-YYYY";
}
else
{
echo "Ok";
}
}