Better date2sql in date_functions.inc
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 4 Dec 2009 22:54:20 +0000 (22:54 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 4 Dec 2009 22:54:20 +0000 (22:54 +0000)
CHANGELOG.txt
includes/date_functions.inc

index 39d85b75f5880aa76ec230362a3330c607589f25..ef507aa8b1dd9775bf58476971f9bbec23caf52b 100644 (file)
@@ -28,6 +28,8 @@ $ /sales/includes/cart_class.inc
 04-Dec-2009 Joe Hunt
 # Print Statement prints balances in wrong place.
 $ /reporting/rep108.php
+! Better date2sql in date_functions.inc
+$ /includes/date_functions.inc
 
 03-Dec-2009 Janusz Dobrowolski
 # Fixed bug [0000178] data error in supplier allocations
index 13294eb055721b8653cba1b9208f24765727554a..187e21f9e4218765523bd7a7e56b5837e86e6f31 100644 (file)
@@ -318,52 +318,15 @@ and converts to a yyyy/mm/dd format */
                return "";
 
        $date_ = trim($date_);
-       $date_ = str_replace($sep, "", $date_);
+    $year = $month = $day = 0;
 
-       if (strlen($date_) == 6)
-       {
-               if ($how == 0)
-               {
-                       $day = substr($date_,2,2);
-                       $month = substr($date_,0,2);
-                       $year = substr($date_,4,2);
-               } 
-               elseif ($how == 1)
-               {
-                       $day = substr($date_,0,2);
-                       $month = substr($date_,2,2);
-                       $year = substr($date_,4,2);
-               } 
-               else
-               {
-                       $day = substr($date_,4,2);
-                       $month = substr($date_,2,2);
-                       $year = substr($date_,0,2);
-               }
-       }
-       elseif (strlen($date_) == 8)
-       {
-               if ($how == 0)
-               {
-                       $day = substr($date_,2,2);
-                       $month = substr($date_,0,2);
-                       $year = substr($date_,4,4);
-               } 
-               elseif ($how == 1)
-               {
-                       $day = substr($date_,0,2);
-                       $month = substr($date_,2,2);
-                       $year = substr($date_,4,4);
-               } 
-               else
-               {
-                       $day = substr($date_,6,2);
-                       $month = substr($date_,4,2);
-                       $year = substr($date_,0,4);
-               }
-       }
-       else
-               $year = $month = $day = 0;
+    // Split up the date by the separator based on "how" to split it
+    if ($how == 0) // MMDDYYYY
+        list($month, $day, $year) = explode($sep, $date_);
+    elseif ($how == 1) // DDMMYYYY
+        list($day, $month, $year) = explode($sep, $date_);
+    else // $how == 2, YYYYMMDD
+        list($year, $month, $day) = explode($sep, $date_);
 
 //to modify assumption in 2030
        if ($date_system == 0 || $date_system == 3)
@@ -385,6 +348,13 @@ and converts to a yyyy/mm/dd format */
                list($year, $month, $day) = jalali_to_gregorian($year, $month, $day); 
        else if ($date_system == 2)
                list($year, $month, $day) = islamic_to_gregorian($year, $month, $day); 
+
+       // Pad with 0s if needed
+       if (strlen($month) == 1)
+               $month = "0$month";
+       if (strlen($day) == 1)
+               $day = "0$day";
+
        return $year."-".$month."-".$day;
 }// end of function