如何校验用户输入的时间是否是合要求的?其实很简单:

 
  
  1. /** 
  2.  * 判断时间格式是否正确 
  3.  * 
  4.  * @param string $param 输入的时间 
  5.  * @param string $format 指定的时间格式 
  6.  * @return boolean 
  7.  */ 
  8. function isDatetime($param = ''$format = 'Y-m-d H:i:s'
  9.     return date($formatstrtotime($param)) === $param
  10.  
  11. echo "<pre>"
  12. $str = "2012-02-30 12:31:22"
  13. echo $str." - "
  14. echo isDatetime($str) ? "TRUE" : "FALSE"
  15. echo "\n"
  16. $str = "2012-02-10 12:31:22"
  17. echo $str." - "
  18. echo isDatetime($str) ? "TRUE" : "FALSE"
  19. echo "\n"
  20. $str = "2012-02-10"
  21. echo $str." - "
  22. echo isDatetime($str"Ymd") ? "TRUE" : "FALSE"
  23. echo "\n"
  24. $str = "2012-02-10"
  25. echo $str." - "
  26. echo isDatetime($str"Y-m-d") ? "TRUE" : "FALSE"

输出结果:

 
  
  1. 2012-02-30 12:31:22 - FALSE 
  2. 2012-02-10 12:31:22 - TRUE 
  3. 2012-02-10 - FALSE 
  4. 2012-02-10 - TRUE 

用到的技巧很简单,就是将传入的时间用strtotime转成时间戳,再用date函数转成指定的格式,如果转换后的字符串与传入的相同,那就说明格式是正确的,so easy.