我想要检查字符串是否符合这种时间格式:
Y-m-d H:i:s
如果不是那么就执行一些代码,例如:
if here will be condition do { this }
else do { this }
如何在PHP中实现这个条件语句?
我想要检查字符串是否符合这种时间格式:
Y-m-d H:i:s
如果不是那么就执行一些代码,例如:
if here will be condition do { this }
else do { this }
如何在PHP中实现这个条件语句?
preg_match
正是你要找的,具体而言:
if(preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/',$date)){
//dothis
}else{
//dothat
}
如果您真的只想要格式正确的日期,则
/\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-5]\d:[0-5]\d/
如何在PHP中检查字符串的日期格式?
if (DateTime::createFromFormat('Y-m-d G:i:s', $myString) !== FALSE) {
echo 'true';
}
你无法确定日期格式是 Y-m-d
还是 Y-d-m
,甚至可能是 Y-d-d
或 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.
}
尽管你可能希望查看是否 preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/',$date)
在这种情况下更快。 我没有测试过。
Y-m-d
是日期的标准格式,表示年-月-日。而将其翻译为“May the Decemberth of 2012”既不符合汉语表达习惯,也没有意义。如果您可以提供更清晰、更具体的翻译要求,我将很乐意为您服务。 - cwallenpooleif (preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $yourdate)) {
// it's in the right format ...
} else {
// not the right format ...
}
来自php.net
这里有一个很酷的函数可以验证mysql日期时间:
<?php
function isValidDateTime($dateTime)
{
if (preg_match("/^(\d{4})-(\d{2})-(\d{2}) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $dateTime, $matches)) {
if (checkdate($matches[2], $matches[3], $matches[1])) {
return true;
}
}
return false;
}
?>
你总是可以强制它的:
date('Y-m-d H:i:s',strtotime($str));