diff --git a/COPYRIGHT b/COPYRIGHT index 4862ab1b339..a6cde40b504 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -12,7 +12,7 @@ Dolibarr uses some external libraries released under different licenses. This is Component Version License GPL Compatible Usage ------------------------------------------------------------------------------------- PHP libraries: -AdoDb-Date 0.33 Modified BSD License Yes Date convertion (not into rpm package) +AdoDb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package) ChromePHP 4.1.0 Apache Software License 2.0 Yes Return server log to chrome browser console CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG EvalMath 1.0 BSD Yes Safe math expressions evaluation diff --git a/htdocs/includes/adodbtime/adodb-time.inc.php b/htdocs/includes/adodbtime/adodb-time.inc.php index 1be5f4cd607..c74778bb991 100644 --- a/htdocs/includes/adodbtime/adodb-time.inc.php +++ b/htdocs/includes/adodbtime/adodb-time.inc.php @@ -57,7 +57,7 @@ adodb_mktime(0,0,0,10,15,1582) - adodb_mktime(0,0,0,10,4,1582) COPYRIGHT -(c) 2003-2005 John Lim and released under BSD-style license except for code by +(c) 2003-2014 John Lim and released under BSD-style license except for code by jackbbs, which includes adodb_mktime, adodb_get_gmt_diff, adodb_is_leap_year and originally found at http://www.php.net/manual/en/function.mktime.php @@ -73,6 +73,9 @@ These should be posted to the ADOdb forums at FUNCTION DESCRIPTIONS +** FUNCTION adodb_time() + +Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) as an unsigned integer. ** FUNCTION adodb_getdate($date=false) @@ -241,6 +244,14 @@ b. Implement daylight savings, which looks awfully complicated, see CHANGELOG +- 16 Jan 2011 0.36 +Added adodb_time() which returns current time. If > 2038, will return as float + +- 7 Feb 2011 0.35 +Changed adodb_date to be symmetric with adodb_mktime. See $jan1_71. fix for bc. + +- 13 July 2010 0.34 +Changed adodb_get_gm_diff to use DateTimeZone(). - 11 Feb 2008 0.33 * Bug in 0.32 fix for hour handling. Fixed. @@ -386,7 +397,7 @@ First implementation. /* Version Number */ -define('ADODB_DATE_VERSION',0.33); +define('ADODB_DATE_VERSION',0.35); $ADODB_DATETIME_CLASS = (PHP_VERSION >= 5.2); @@ -601,6 +612,12 @@ function adodb_date_test() else print "
Failed :-(
"; } +function adodb_time() +{ + $d = new DateTime(); + return $d->format('U'); +} + /** Returns day of week, 0 = Sunday,... 6=Saturday. Algorithm from PEAR::Date_Calc @@ -729,9 +746,17 @@ global $ADODB_DATETIME_CLASS; } else { if (isset($TZ)) return $TZ; $y = date('Y'); - $TZ = mktime(0,0,0,12,2,$y) - gmmktime(0,0,0,12,2,$y); + /* + if (function_exists('date_default_timezone_get') && function_exists('timezone_offset_get')) { + $tzonename = date_default_timezone_get(); + if ($tzonename) { + $tobj = new DateTimeZone($tzonename); + $TZ = -timezone_offset_get($tobj,new DateTime("now",$tzo)); + } + } + */ + if (empty($TZ)) $TZ = mktime(0,0,0,12,2,$y) - gmmktime(0,0,0,12,2,$y); } - return $TZ; } @@ -1006,7 +1031,6 @@ function adodb_tz_offset($gmt,$isphp5) return sprintf('%s%02d%02d',($gmt<=0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); else return sprintf('%s%02d%02d',($gmt<0)?'+':'-',floor($zhrs),($zhrs-$hrs)*60); - break; } @@ -1041,11 +1065,19 @@ function adodb_date($fmt,$d=false,$is_gmt=false) { static $daylight; global $ADODB_DATETIME_CLASS; +static $jan1_1971; + + + if (!isset($daylight)) { + $daylight = function_exists('adodb_daylight_sv'); + if (empty($jan1_1971)) $jan1_1971 = mktime(0,0,0,1,1,1971); // we only use date() when > 1970 as adodb_mktime() only uses mktime() when > 1970 + } if ($d === false) return ($is_gmt)? @gmdate($fmt): @date($fmt); if (!defined('ADODB_TEST_DATES')) { if ((abs($d) <= 0x7FFFFFFF)) { // check if number in 32-bit signed range - if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= 0) // if windows, must be +ve integer + + if (!defined('ADODB_NO_NEGATIVE_TS') || $d >= $jan1_1971) // if windows, must be +ve integer return ($is_gmt)? @gmdate($fmt,$d): @date($fmt,$d); } @@ -1054,7 +1086,6 @@ global $ADODB_DATETIME_CLASS; $arr = _adodb_getdate($d,true,$is_gmt); - if (!isset($daylight)) $daylight = function_exists('adodb_daylight_sv'); if ($daylight) adodb_daylight_sv($arr, $is_gmt); $year = $arr['year']; @@ -1075,6 +1106,9 @@ global $ADODB_DATETIME_CLASS; */ for ($i=0; $i < $max; $i++) { switch($fmt[$i]) { + case 'e': + $dates .= date('e'); + break; case 'T': if ($ADODB_DATETIME_CLASS) { $dt = new DateTime(); @@ -1215,7 +1249,7 @@ function adodb_mktime($hr,$min,$sec,$mon=false,$day=false,$year=false,$is_dst=fa // for windows, we don't check 1970 because with timezone differences, // 1 Jan 1970 could generate negative timestamp, which is illegal - $usephpfns = (1971 < $year && $year < 2038 + $usephpfns = (1970 < $year && $year < 2038 || !defined('ADODB_NO_NEGATIVE_TS') && (1901 < $year && $year < 2038) ); @@ -1422,5 +1456,3 @@ global $ADODB_DATE_LOCALE; $ret = adodb_date($fmtdate, $ts, $is_gmt); return $ret; } - -?> \ No newline at end of file