Esempio n. 1
0
/**
 * Format date
 **/
function carbo_format_date($date, $input_format, $output_format, $month_names = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'), $month_names_short = array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'), $day_names = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), $day_names_short = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'))
{
    if (!is_array($date)) {
        $pformat = preg_replace('/([dDljmMFnYyGgHhAais])/', '%$1', $input_format);
        $date = carbo_strptime($date, $pformat);
        if ($date === FALSE or !isset($date['tm_mon']) or !isset($date['tm_mday']) or !isset($date['tm_year'])) {
            return FALSE;
        }
    }
    $pformat = preg_replace('/([dDljmMFnYyGgHhAais])/', '%$1', $output_format);
    $search = array('%d', '%D', '%l', '%j', '%m', '%M', '%F', '%n', '%Y', '%y', '%G', '%g', '%H', '%h', '%A', '%a', '%i', '%s');
    $replace = array($date['tm_mday'] < 10 ? '0' . $date['tm_mday'] : $date['tm_mday'], '', '', $date['tm_mday'], $date['tm_mon'] < 10 ? '0' . $date['tm_mon'] : $date['tm_mon'], $month_names_short[$date['tm_mon'] - 1], $month_names[$date['tm_mon'] - 1], $date['tm_mon'], $date['tm_year'], substr($date['tm_year'], 0, 2), $date['tm_hour'], $date['tm_hour'] > 12 ? $date['tm_hour'] - 12 : ($date['tm_hour'] == 0 ? 12 : $date['tm_hour']), $date['tm_hour'] < 10 ? '0' . $date['tm_hour'] : $date['tm_hour'], $date['tm_hour'] > 12 ? $date['tm_hour'] - 12 < 10 ? '0' . ($date['tm_hour'] - 12) : $date['tm_hour'] - 12 : ($date['tm_hour'] == 0 ? 12 : ($date['tm_hour'] < 10 ? '0' . $date['tm_hour'] : $date['tm_hour'])), $date['tm_hour'] < 12 ? 'AM' : 'PM', $date['tm_hour'] < 12 ? 'am' : 'pm', $date['tm_min'] < 10 ? '0' . $date['tm_min'] : $date['tm_min'], $date['tm_sec'] < 10 ? '0' . $date['tm_sec'] : $date['tm_sec']);
    return str_replace($search, $replace, $pformat);
}
 /**
  * Check date
  **/
 function carbo_check_date($date, $format)
 {
     $this->set_message('carbo_check_date', lang('cg_check_date'));
     if (!$format) {
         $format = 'm/d/Y';
     }
     $pformat = preg_replace('/([dDljmMFnYyGgHhAais])/', '%$1', $format);
     $ret = carbo_strptime($date, $pformat);
     if ($ret === FALSE or !isset($ret['tm_mon']) or !isset($ret['tm_mday']) or !isset($ret['tm_year'])) {
         return FALSE;
     }
     if (!checkdate($ret['tm_mon'], $ret['tm_mday'], $ret['tm_year'])) {
         return FALSE;
     }
     return carbo_format_date($ret, $format, $format);
 }