Try a fix for dol_time_plus_duree when date is 2017-09-01 00:00 and

timezone > 0
This commit is contained in:
Laurent Destailleur 2017-09-11 02:09:48 +02:00
parent e9e6a8e5ad
commit 214bad26db

View File

@ -115,26 +115,28 @@ function getServerTimeZoneInt($refgmtdate='now')
*/
function dol_time_plus_duree($time, $duration_value, $duration_unit)
{
global $conf;
if ($duration_value == 0) return $time;
if ($duration_unit == 'h') return $time + (3600*$duration_value);
if ($duration_unit == 'w') return $time + (3600*24*7*$duration_value);
$deltastring='P';
if ($duration_value > 0){ $deltastring.=abs($duration_value); $sub= false; }
if ($duration_value < 0){ $deltastring.=abs($duration_value); $sub= true; }
if ($duration_unit == 'd') { $deltastring.="D"; }
if ($duration_unit == 'm') { $deltastring.="M"; }
if ($duration_unit == 'y') { $deltastring.="Y"; }
$date = new DateTime();
$date->setTimezone(new DateTimeZone('UTC'));
if (! empty($conf->global->MAIN_DATE_IN_MEMORY_ARE_GMT)) $date->setTimezone(new DateTimeZone('UTC'));
$date->setTimestamp($time);
$interval = new DateInterval($deltastring);
if($sub) $date->sub($interval);
else $date->add( $interval );
return $date->getTimestamp();
}