Upgraded ADOdb Date to v0.36
Extracted from ADOdb v5.19 Fixes PHP 7 fatal error
This commit is contained in:
parent
7c44198022
commit
442431704b
@ -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
|
||||
|
||||
@ -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 "<p><b>Failed</b> :-(</p>";
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Reference in New Issue
Block a user