1.使用正则验证日期时间格式
主要使用ereg、preg_match等php函数。
有个非常简单的,
代码如下 | 复制代码 |
$dateTime=”2010-6-4 00:00:00″; if(preg_match(“/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s”,$dateTime)) { echo “Yes”; }else{ echo “No”; } |
可是这个正则只验证了数字,并未对边界值进行验证,并不全面,于是有人写了这个正则
代码如下 | 复制代码 |
regex = “^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578] |
丫的这简直就是神的作品。
于是我不得不放弃使用正则来验证时间格式合法性。
2.对时间字符串进行拆解分别验证日期时间格式。
主要用到checkdate等php函数。
这个方法很不错,验证也准确,可是代码写起来麻烦,需要将日期和时间分别拆解,日期使用checkdate($k[1],$k[2],$k[0])验证,时间又需要拆解逐个检查。
其实可以综合了上述两种方法来使用,操作也方便得多。
1.首先使用正则验证是否为“2011-11-07 12:30:55”这种格式。
用
代码如下 | 复制代码 |
preg_match(“/^d{4}-d{2}-d{2} d{2}:d{2}:d{2}$/s”,$dateTime) |
就可以了
2.然后使用strtotime()函数判断验证,传入日期字符串即可。
strtotime()函数默认返回指定日期时间字符串对应的UNIX时间戳。
strtotime()函数有个特点,就是如果传入日期字符串格式错误的话会返回false,而且支持各种的日期格式,非常方便。