PHP 将日期转换为 DD-M-YY


PHP convert date to DD-M-YY

我正在尝试在我的代码中验证像 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";
    }
}