如何校验用户输入的时间是否是合要求的?其实很简单:
- /**
- * 判断时间格式是否正确
- *
- * @param string $param 输入的时间
- * @param string $format 指定的时间格式
- * @return boolean
- */
- function isDatetime($param = '', $format = 'Y-m-d H:i:s')
- {
- return date($format, strtotime($param)) === $param;
- }
- echo "<pre>";
- $str = "2012-02-30 12:31:22";
- echo $str." - ";
- echo isDatetime($str) ? "TRUE" : "FALSE";
- echo "\n";
- $str = "2012-02-10 12:31:22";
- echo $str." - ";
- echo isDatetime($str) ? "TRUE" : "FALSE";
- echo "\n";
- $str = "2012-02-10";
- echo $str." - ";
- echo isDatetime($str, "Ymd") ? "TRUE" : "FALSE";
- echo "\n";
- $str = "2012-02-10";
- echo $str." - ";
- echo isDatetime($str, "Y-m-d") ? "TRUE" : "FALSE";
输出结果:
- 2012-02-30 12:31:22 - FALSE
- 2012-02-10 12:31:22 - TRUE
- 2012-02-10 - FALSE
- 2012-02-10 - TRUE
用到的技巧很简单,就是将传入的时间用strtotime转成时间戳,再用date函数转成指定的格式,如果转换后的字符串与传入的相同,那就说明格式是正确的,so easy.
本文转自 ustb80 51CTO博客,原文链接:http://blog.51cto.com/ustb80/1036228,如需转载请自行联系原作者