From 860770c4a86811457b77e62f888920162d664d77 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Wed, 3 Dec 2008 00:43:25 -0500 Subject: [PATCH] refactored date-mangling stuff a bit --- calendar.php | 2 +- time.php | 39 +++++++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/calendar.php b/calendar.php index 2014fcc..c7f51ab 100644 --- a/calendar.php +++ b/calendar.php @@ -21,7 +21,7 @@ # # December 2006 # Sun Mon Tue Wed Thu Fri Sat -# 1 2 +# 1 2 # 3 4 5 6 7 8 9 # 10 11 12 13 14 15 16 # 17 18 19 20 21 22 23 diff --git a/time.php b/time.php index 4c6b1f1..cb9e7a8 100644 --- a/time.php +++ b/time.php @@ -62,16 +62,19 @@ function clean_ymd($year, $month, $day) { } if($day < 1) { $day = 1; - } elseif($day > 31) { - # FIXME this should check the month - $day = 31; + } else { + $max = date('t', mktime(12, 0, 0, $month, 1, $year)); + if($day > $max) { + $day = $max; + } } return array($year, $month, $day); } -# convert date string from mm/dd/yyyy to yyyy-mm-dd -function mdy_to_ymd($date) { +# pass date like 3/21/99 +# returns array(year, month, day) +function mdy_clean($date) { $date = ereg_replace('[^0-9/-]', '', $date); $date = ereg_replace('-', '/', $date); $parts = explode('/', $date); @@ -92,13 +95,18 @@ function mdy_to_ymd($date) { list($month, $day, $year) = $parts; } - list($year, $month, $day) = clean_ymd($year, $month, $day); + return clean_ymd($year, $month, $day); +} +# convert date string from mm/dd/yyyy to yyyy-mm-dd +function mdy_to_ymd($date) { + list($year, $month, $day) = mdy_clean($date); return sprintf('%04u-%02u-%02u', $year, $month, $day); } -# convert date string from yyy-mm-dd to mm/dd/yyyy -function ymd_to_mdy($date) { +# pass date like 2008-11-21 +# returns array(year, month, day) +function ymd_clean($date) { $date = ereg_replace('[^0-9/-]', '', $date); $date = ereg_replace('/', '-', $date); $parts = explode('-', $date); @@ -119,13 +127,20 @@ function ymd_to_mdy($date) { list($year, $month, $day) = $parts; } - list($year, $month, $day) = clean_ymd($year, $month, $day); + return clean_ymd($year, $month, $day); +} +# convert date string from yyyy-mm-dd to mm/dd/yyyy +function ymd_to_mdy($str) { + list($year, $month, $day) = ymd_clean($str); return sprintf('%02u/%02u/%04u', $month, $day, $year); } -function enc_mdy($date) { - return ymd_to_mdy($date); +function enc_mdy($str) { + return ymd_to_mdy($str); } -?> +function format_ymd($str) { + list($year, $month, $day) = ymd_clean($str); + return sprintf('%04u-%02u-%02u', $year, $month, $day); +} -- 1.7.10.4