Preg_match (yyyy-mm-dd hh:mm:ss) - 只有这种格式


Preg_match (yyyy-mm-dd hh:mm:ss) - only this format

function Check_Date_Time($date_time)
{
 if (preg_match("/('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})/", $date_time))
   {
     return true;
   }
     else 
     {
     return false;
     }
}   
if(Check_Date_Time($date)){
    //echo 'correct';
}else{
    die();
}

如果我这样设置日期

["DueDate3"]=> string(24) "2014-10-17 21:10:1751111" 

验证器让它的低谷,我不知道为什么:/如果它是正确使用的日期格式,则返回 true。我真的不能使用其他格式 - 只有这是可以接受的

将开始^和结束$锚点添加到正则表达式中。

if (preg_match("/^('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})$/", $date_time))
 ^  Start of string or line  
'A  Start of string  
 $  End of string or line  
'Z  End of string  

尝试将其中一些锚字符放入代码中:

preg_match("/^('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})$/", $date_time)

您可以在此处找到更正则表达式的更多基本字符。

将锚点添加到正则表达式:

 if (preg_match("/^('d{4})-('d{2})-('d{2}) ('d{2}):('d{2}):('d{2})$/", $date_time))

试试这个正则表达式

$date_time = "2019-02-21 11:25:34";
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $date_time)

这可能会对您有所帮助。谢谢