PhpTips.im - Everything about php - Download CMS, find tips and tricks, code snippetz, classes and more and more...
Bookmark this page !
   

Articles

    Home » Articles » General php tips » Php date validate
Published on : 12.05.2010 Category : General php tips Viewed : 40 times.

Code:


  1. <?php
  2. /**
  3.   *
  4.   * Validate a date
  5.   *
  6.   * @param string $date
  7.   * @param string format
  8.   * @return bool
  9.   *
  10.   */
  11. function validateDate( $date, $format='YYYY-MM-DD')
  12. {
  13. switch( $format )
  14. {
  15. case 'YYYY/MM/DD':
  16. case 'YYYY-MM-DD':
  17. list( $y, $m, $d ) = preg_split( '/[-./ ]/', $date );
  18. break;
  19.  
  20. case 'YYYY/DD/MM':
  21. case 'YYYY-DD-MM':
  22. list( $y, $d, $m ) = preg_split( '/[-./ ]/', $date );
  23. break;
  24.  
  25. case 'DD-MM-YYYY':
  26. case 'DD/MM/YYYY':
  27. list( $d, $m, $y ) = preg_split( '/[-./ ]/', $date );
  28. break;
  29.  
  30. case 'MM-DD-YYYY':
  31. case 'MM/DD/YYYY':
  32. list( $m, $d, $y ) = preg_split( '/[-./ ]/', $date );
  33. break;
  34.  
  35. case 'YYYYMMDD':
  36. $y = substr( $date, 0, 4 );
  37. $m = substr( $date, 4, 2 );
  38. $d = substr( $date, 6, 2 );
  39. break;
  40.  
  41. case 'YYYYDDMM':
  42. $y = substr( $date, 0, 4 );
  43. $d = substr( $date, 4, 2 );
  44. $m = substr( $date, 6, 2 );
  45. break;
  46.  
  47. default:
  48. throw new Exception( "Invalid Date Format" );
  49. }
  50. return checkdate( $m, $d, $y );
  51. }
  52. ?>
  53. /* example usage*/
  54.  
  55. <?php
  56. echo validateDate( '2007-04-21' ) ? 'good'. "n" : 'bad' . "n";
  57. echo validateDate( '2007-21-04', 'YYYY-DD-MM' ) ? 'good'. "n" : 'bad' . "n";
  58. echo validateDate( '2007-21-04', 'YYYY/DD/MM' ) ? 'good'. "n" : 'bad' . "n";
  59. echo validateDate( '21/4/2007', 'DD/MM/YYYY' ) ? 'good'. "n" : 'bad' . "n";
  60. echo validateDate( '4/21/2007', 'MM/DD/YYYY' ) ? 'good'. "n" : 'bad' . "n";
  61. echo validateDate( '20070421', 'YYYYMMDD' ) ? 'good'. "n" : 'bad' . "n";
  62. echo validateDate( '04212007', 'YYYYDDMM' ) ? 'good'. "n" : 'bad' . "n";
  63. ?>



Add this article in :

 

There is not yet any comment !



838 Rating: 4.5/10 (2 votes cast)

 

 Members
Log In !
Email Address :

Password :


Change my passowrd !
Sign Up !
We have : 3 members.
Latest member : albans
 
 Last Posts
 
 Advertising
 
©PhpTips.im 2010
Powered by PikaCMS.
Quick Links :
Home | Browse all articles | Downloads | Terms of Use
RSS RSS 2.0 : Articles | Downloads ATOM : Articles | Downloads