如何在PHP中检查字符串的日期格式?

kas*_*nov 9 php regex preg-match

我想检查字符串是否具有此时间格式:

Y-m-d H:i:s
Run Code Online (Sandbox Code Playgroud)

如果不是做一些代码,例如

if here will be condition do { this }
else do { this }
Run Code Online (Sandbox Code Playgroud)

如何在PHP中执行此条件?

Sha*_*had 19

preg_match 是你在找什么,特别是:

if(preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/',$date)){
   //dothis
}else{
   //dothat
}
Run Code Online (Sandbox Code Playgroud)

如果你真的只想要正确格式化日期,那么

/\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-5]\d:[0-5]\d/
Run Code Online (Sandbox Code Playgroud)


Sur*_*hir 17

如何在PHP中检查字符串的日期格式?

 if (DateTime::createFromFormat('Y-m-d G:i:s', $myString) !== FALSE) {
 echo 'true';
}                                                               
Run Code Online (Sandbox Code Playgroud)

  • 为什么名单上的这个更高? (3认同)

cwa*_*ole 16

你没有.这是不可能判断它是Y-m-dY-d-m,甚至Y-d-dVS Y-m-m.什么是2012-05-12?5月12日或12月5日?

但是,如果您对此感到满意,您可以随时:

// convert it through strtotime to get the date and back.
if( $dt == date('Y-m-d H:i:s',strtotime($dt)) )
{
    // date is in fact in one of the above formats
}
else
{
    // date is something else.
}
Run Code Online (Sandbox Code Playgroud)

虽然你可能想看看preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/',$date)这个是不是更快.没有测试过.

  • `Ymm`:`2012-05-12` ...可能是2012年的Decemberth. (6认同)

Oli*_*rth -2

答案可能涉及到正则表达式。我建议您阅读本文档,如果仍有问题,请返回此处。