mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2026-02-08 00:52:01 +01:00
Merge pull request #5436 from atm-alexis/FIX_3.8_bug_4682
FIX #4682 dol_time_plus_duree use datetime instead of strtotime
This commit is contained in:
@@ -117,12 +117,24 @@ function dol_time_plus_duree($time, $duration_value, $duration_unit)
|
||||
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);
|
||||
if ($duration_value > 0) $deltastring="+".abs($duration_value);
|
||||
if ($duration_value < 0) $deltastring="-".abs($duration_value);
|
||||
if ($duration_unit == 'd') { $deltastring.=" day"; }
|
||||
if ($duration_unit == 'm') { $deltastring.=" month"; }
|
||||
if ($duration_unit == 'y') { $deltastring.=" year"; }
|
||||
return strtotime($deltastring,$time);
|
||||
|
||||
$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'));
|
||||
$date->setTimestamp($time);
|
||||
$interval = new DateInterval($deltastring);
|
||||
|
||||
if($sub) $date->sub($interval);
|
||||
else $date->add( $interval );
|
||||
|
||||
return $date->getTimestamp();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user