00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 include_once( 'lib/ezutils/classes/ezinputvalidator.php' );
00040
00041 class eZDateTimeValidator extends eZInputValidator
00042 {
00043
00044
00045
00046 function eZDateTimeValidator()
00047 {
00048 }
00049
00050 function validateDate( $day, $month, $year )
00051 {
00052 $check = checkdate( $month, $day, $year );
00053 $datetime = mktime( 0, 0, 0, $month, $day, $year );
00054 if ( !$check or
00055 $year < 1970 or
00056 $datetime === false )
00057 {
00058 return EZ_INPUT_VALIDATOR_STATE_INVALID;
00059 }
00060 return EZ_INPUT_VALIDATOR_STATE_ACCEPTED;
00061 }
00062
00063 function validateTime( $hour, $minute )
00064 {
00065 if( preg_match( '/\d+/', trim( $hour ) ) &&
00066 preg_match( '/\d+/', trim( $minute ) ) &&
00067 $hour >= 0 && $minute >= 0 &&
00068 $hour < 24 && $minute < 60 )
00069 {
00070 return EZ_INPUT_VALIDATOR_STATE_ACCEPTED;
00071 }
00072 return EZ_INPUT_VALIDATOR_STATE_INVALID;
00073 }
00074
00075 function validateDateTime( $day, $month, $year, $hour, $minute )
00076 {
00077 $check = checkdate( $month, $day, $year );
00078 $datetime = mktime( $hour, $minute, 0, $month, $day, $year );
00079 if ( !$check or
00080 $year < 1970 or
00081 $datetime === false or
00082 eZDateTimeValidator::validateTime( $hour, $minute ) == EZ_INPUT_VALIDATOR_STATE_INVALID )
00083 {
00084 return EZ_INPUT_VALIDATOR_STATE_INVALID;
00085 }
00086 return EZ_INPUT_VALIDATOR_STATE_ACCEPTED;
00087 }
00088
00089
00090 }
00091
00092 ?>