PHP 中验证一个字符串是否为日期

PHP 中有一个 checkdate() 函数来验证一个日期是否正确, 三个参数分别是 month,day,year
比如下面的代码就会返回 false, 因为根本没有 13 月份:
checkdate(13, 20, 2014)

但是用来判断一个字符串 如 2014-09-21 16:13:17 就无能为力了.
判断这种字符串, 其实可以用 strtotime() 函数, strtotime() 本身是把字符串变成时间戳的函数, 但是遇到不标准的时间格式会返回 false , 因此可以用这个函数来判断是否为时间, 但是这个函数也有缺点, 下面两句代码其实都是返回时间戳的, 需要特别注意一下.

strtotime('2014-09-31'); //返回的是 1412092800 , 其实是 2014-10-01 的时间戳

strtotime('a'); //返回的也是时间戳, 根据官方文档 a 是一个时区的, 所以会返回时间戳

您可能还喜欢...