day = $day; $this->month = $month; $this->year = $year; } function get_day() { return $this->day; } function get_month() { return $this->month; } function get_year() { return $this->year; } function set_day($day) { $this->day = $day; } function set_month($month) { $this->month = $month; } function set_year($year) { $this->year = $year; } function set_mysql_date($mdate) { $date = $this->_parse_mysql_date($mdate); $this->set_date($date["day"], $date["month"], $date["year"]); } function get_mysql_date() { $y = $this->year; $m = $this->month; $d = $this->day; return "$y-$m-$d"; } function today() { $time = localtime(); $day = $time[3]; $month = $time[4] + 1; $year = $time[5] + 1900; $date_today = new SD_Date(); $date_today->set_date($day, $month, $year); return $date_today; } // compares this date with the passed in date // returns 0 if this == date // -1 if this < date // 1 if this > date function compare($date_obj) { $yr_diff = ($this->get_year() - $date_obj->get_year() ); $mo_diff = ($this->get_month() - $date_obj->get_month()) * 100 ; $dy_diff = ($this->get_day() - $date_obj->get_day() ) ; $diff = $yr_diff + $mo_diff + $dy_diff; if ($diff > 1) return 1; else if ($diff < -1) return -1; else return 0; } function _parse_mysql_date($mdate) { $datetime = split(" ", $mdate); $date = $datetime[0]; $date_parts = split("-", $date); $year = (int)$date_parts[0]; $month = (int)$date_parts[1]; $day = (int)$date_parts[2]; $date = array("year" => $year, "month" => $month, "day" => $day ); return $date; } } class SD_DateFormatter { var $month_names = array(1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December" ); var $num_suffix = array(1 => "st.", 2 => "nd.", 3 => "rd.", 4 => "th.", 5 => "th.", 6 => "th.", 7 => "th.", 8 => "th.", 9 => "th.", 10 => "th.", 11 => "th.", 12 => "th.", 13 => "th.", 14 => "th.", 15 => "th.", 16 => "th.", 17 => "th.", 18 => "th.", 19 => "th.", 20 => "th.", 21 => "st.", 22 => "nd.", 23 => "rd.", 24 => "th.", 25 => "th.", 26 => "th.", 27 => "th.", 28 => "th.", 29 => "th.", 30 => "th.", 31 => "st.", 32 => "nd." ); var $month_abbrevs = array(1 => "Jan", 2 => "Feb", 3 => "Mar", 4 => "Apr", 5 => "May", 6 => "Jun", 7 => "Jul", 8 => "Aug", 9 => "Sep", 10 => "Oct", 11 => "Nov", 12 => "Dec" ); var $month_nums; var $day_nums; var $year_nums; function SD_DateFormatter() { $this->month_nums = range(1, 12); $this->day_nums = range(1, 31); $date = new SD_Date(); $today = $date->today(); $year = $today->get_year(); $this->year_nums = range($year, $year + 20); } function get_months() { return $this->month_nums; } function get_days() { return $this->day_nums; } function get_years() { return $this->year_nums; } function get_month_abbrevs() { return array_values($this->month_abbrevs); } function get_month_names() { return array_values($this->month_names); } function fmtlong($date_obj) { $year = $date_obj->get_year(); $day = $date_obj->get_day(); $month = $date_obj->get_month(); $month_name = $this->month_names[$month]; $suffix = $this->num_suffix[$day]; return "$month_name $day$suffix, $year"; } } ?>