JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
refactored date-mangling stuff a bit
authorJason Woofenden <jason283@herkamire.com>
Wed, 3 Dec 2008 05:43:25 +0000 (00:43 -0500)
committerJason Woofenden <jason283@herkamire.com>
Wed, 3 Dec 2008 05:43:25 +0000 (00:43 -0500)
calendar.php
time.php

index 2014fcc..c7f51ab 100644 (file)
@@ -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
index 4c6b1f1..cb9e7a8 100644 (file)
--- 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);
+}