X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fdate_functions.inc;h=96ecb31bcdcf2967a2e90c6cb4173410f1da88bb;hb=d859c6081f650d22eba97b13a298b681148d0d6d;hp=e4b2c76f0f5644e895c52cd018fa3c3bc2feff02;hpb=356a01ad06c41137b12fb39f57dddfb0ee3b977d;p=fa-stable.git diff --git a/includes/date_functions.inc b/includes/date_functions.inc index e4b2c76f..96ecb31b 100644 --- a/includes/date_functions.inc +++ b/includes/date_functions.inc @@ -21,22 +21,31 @@ this can be a string either "d/m/Y" for UK/Australia/New Zealand dates or function __date($year, $month, $day) { - global $dateseps; + global $dateseps, $tmonths; $how = user_date_format(); $sep = $dateseps[user_date_sep()]; $day = (int)$day; $month = (int)$month; - if ($day < 10) - $day = "0".$day; - if ($month < 10) - $month = "0".$month; + if ($how < 3) + { + if ($day < 10) + $day = "0".$day; + if ($month < 10) + $month = "0".$month; + } if ($how == 0) return $month.$sep.$day.$sep.$year; elseif ($how == 1) return $day.$sep.$month.$sep.$year; - else + elseif ($how == 2) return $year.$sep.$month.$sep.$day; + elseif ($how == 3) + return $tmonths[$month].$sep.$day.$sep.$year; + elseif ($how == 4) + return $day.$sep.$tmonths[$month].$sep.$year; + else + return $year.$sep.$tmonths[$month].$sep.$day; } function is_date($date_) @@ -49,47 +58,73 @@ function is_date($date_) $sep = $dateseps[user_date_sep()]; $date_ = trim($date_); - $date_ = str_replace($sep, "", $date_); - if (strlen($date_) == 6) + $date = str_replace($sep, "", $date_); + + if ($how > 2) + { + global $tmonths; + $dd = explode($sep, $date_); + if ($how == 3) + { + $day = $dd[1]; + $month = array_search($dd[0], $tmonths); + $year = $dd[2]; + } + elseif ($how == 4) + { + $day = $dd[0]; + $month = array_search($dd[1], $tmonths); + $year = $dd[2]; + } + else + { + $day = $dd[2]; + $month = array_search($dd[1], $tmonths); + $year = $dd[0]; + } + if ($year < 1000) + return 0; + } + elseif (strlen($date) == 6) { if ($how == 0) { - $day = substr($date_,2,2); - $month = substr($date_,0,2); - $year = substr($date_,4,2); + $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); + $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); + $day = substr($date,4,2); + $month = substr($date,2,2); + $year = substr($date,0,2); } } - elseif (strlen($date_) == 8) + elseif (strlen($date) == 8) { if ($how == 0) { - $day = substr($date_,2,2); - $month = substr($date_,0,2); - $year = substr($date_,4,4); + $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); + $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); + $day = substr($date,6,2); + $month = substr($date,4,2); + $year = substr($date,0,4); } } if (!isset($year)|| (int)$year > 9999) @@ -97,7 +132,6 @@ function is_date($date_) return 0; } - if (is_long((int)$day) && is_long((int)$month) && is_long((int)$year)) { global $date_system; @@ -259,7 +293,8 @@ function add_days($date, $days) // accepts negative values as well list($year, $month, $day) = gregorian_to_islamic(date("Y", $timet), date("n", $timet), date("j", $timet)); return __date($year, $month, $day); } - return date(user_date_display(), $timet); + list($year, $month, $day) = explode("-", date("Y-m-d", $timet)); + return __date($year, $month, $day); } function add_months($date, $months) // accepts negative values as well @@ -272,7 +307,7 @@ function add_months($date, $months) // accepts negative values as well $year = ($months-$month)/12; $timet = mktime(0,0,0, $month, min($day, days_in_month($month, $year)), $year); - + if ($date_system == 1 || $date_system == 2) { if ($date_system == 1) @@ -281,7 +316,8 @@ function add_months($date, $months) // accepts negative values as well list($year, $month, $day) = gregorian_to_islamic(date("Y", $timet), date("n", $timet), date("j", $timet)); return __date($year, $month, $day); } - return date(user_date_display(), $timet); + list($year, $month, $day) = explode("-", date("Y-m-d", $timet)); + return __date($year, $month, $day); } function add_years($date, $years) // accepts negative values as well @@ -297,7 +333,8 @@ function add_years($date, $years) // accepts negative values as well list($year, $month, $day) = gregorian_to_islamic(date("Y", $timet), date("n", $timet), date("j", $timet)); return __date($year, $month, $day); } - return date(user_date_display(), $timet); + list($year, $month, $day) = explode("-", date("Y-m-d", $timet)); + return __date($year, $month, $day); } //_______________________________________________________________ @@ -307,8 +344,6 @@ function sql2date($date_) global $date_system; //for MySQL dates are in the format YYYY-mm-dd - if ($date_ == null || strlen($date_) == 0) - return ""; if (strpos($date_, "/")) { // In MySQL it could be either / or - @@ -318,6 +353,8 @@ function sql2date($date_) { list($year, $month, $day) = explode("-", $date_); } + if (!isset($day)) // data format error + return ""; if (strlen($day) > 4) { /*chop off the time stuff */ @@ -333,7 +370,7 @@ function sql2date($date_) function date2sql($date_) { - global $dateseps, $date_system; + global $dateseps, $date_system, $tmonths; /* takes a date in a the format specified in $DefaultDateFormat and converts to a yyyy/mm/dd format */ @@ -345,15 +382,18 @@ and converts to a yyyy/mm/dd format */ $date_ = trim($date_); $year = $month = $day = 0; - // Split up the date by the separator based on "how" to split it - if ($how == 0) // MMDDYYYY + if ($how == 0 || $how == 3) // MMDDYYYY or MmmDDYYYY list($month, $day, $year) = explode($sep, $date_); - elseif ($how == 1) // DDMMYYYY + elseif ($how == 1 || $how == 4) // DDMMYYYY or DDMmYYYY list($day, $month, $year) = explode($sep, $date_); - else // $how == 2, YYYYMMDD + else // $how == 2 || $how == 5, YYYYMMDD or YYYYMmmDD list($year, $month, $day) = explode($sep, $date_); - + if ($how > 2) + { + global $tmonths; + $month = array_search($month, $tmonths); + } //to modify assumption in 2030 if ($date_system == 0 || $date_system == 3) {