示例#1
0
    /**
     * Check a date/datetime string
     *
     * @static
     * @param string	$datetime	The date or datetime to check
     * @param mixed		$return		The type of return value
     * @param string	$date_format	The dateformat to use for the check	
     * @return boolean
     */
    public static function isDateTime($datetime, $return = false, $date_format = 'Y-m-d H:i:s')
    {
        $d = X4Time_helper::parse_date($datetime, $date_format);
        if ($d['error_count'] == 0) {
            if (checkdate($d['month'], $d['day'], $d['year'])) {
                switch ($return) {
                    case 'date':
                        return $d['year'] . '-' . str_pad($d['month'], 2, '0', STR_PAD_LEFT) . '-' . str_pad($d['day'], 2, '0', STR_PAD_LEFT);
                        break;
                    case 'datetime':
                        return $d['year'] . '-' . str_pad($d['month'], 2, '0', STR_PAD_LEFT) . '-' . str_pad($d['day'], 2, '0', STR_PAD_LEFT) . ' 
						' . str_pad($d['hour'], 2, '0', STR_PAD_LEFT) . ':' . str_pad($d['minute'], 2, '0', STR_PAD_LEFT) . ':' . str_pad($d['second'], 2, '0', STR_PAD_LEFT);
                        break;
                    default:
                        return true;
                        break;
                }
            }
        }
        return false;
    }
示例#2
0
 /**
  * Before rule
  * if the value is not a date before another field date then catch an error
  *
  * @static
  * @param array		$field	Array of the field form (passed as reference)
  * @param array		$tok	Array of the rule parameters (rule_name, param1, param2...)
  * @param boolean	$e		Error status
  * @param array		$_post	_POST array
  * @param array		$_files	_FILES array
  * @return void
  */
 private static function _before(&$field, $tok, &$e, $_post, $_files)
 {
     if (isset($_post['date_format'])) {
         // exists an alternative date_format
         $val = str_replace('/', '-', $_post[$field['name']]);
         $before = X4Time_helper::reformat($val, $_post['date_format'], 'Y-m-d');
         $after = X4Time_helper::reformat($_post[$tok[1]], $_post['date_format'], 'Y-m-d');
     } else {
         $before = $_post[$field['name']];
         $after = $_post[$tok[1]];
     }
     if (strtotime($before) >= strtotime($after)) {
         $field['error'][] = '_must_be_before';
         $field['related'][$field['name']] = $tok[1];
         $e = false;
     }
 }