diff options
author | Mark Wells <mark@freeside.biz> | 2013-09-19 13:33:26 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2013-09-19 13:33:37 -0700 |
commit | bd2e6496db7c18adbc7219d4ed104aab6beda56e (patch) | |
tree | 2c3e83aa2988125ca316ece2c92f5bc8dfbaddf0 /FS | |
parent | f691b3f414bfc0a07a3b5967e159403e1cfca960 (diff) |
more accurate calculation of package start delays, #20686
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/part_pkg.pm | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index 3e6333890..184f1cb9e 100644 --- a/FS/FS/part_pkg.pm +++ b/FS/FS/part_pkg.pm @@ -5,7 +5,8 @@ use strict; use vars qw( %plans $DEBUG $setup_hack $skip_pkg_svc_hack ); use Carp qw(carp cluck confess); use Scalar::Util qw( blessed ); -use Time::Local qw( timelocal timelocal_nocheck ); +use DateTime; +use Time::Local qw( timelocal timelocal_nocheck ); # eventually replace with DateTime use Tie::IxHash; use FS::Conf; use FS::Record qw( qsearch qsearchs dbh dbdef ); @@ -1034,10 +1035,11 @@ sub delay_start_date { my $self = shift; my $delay = $self->delay_start or return ''; - - my ($mday,$mon,$year) = (localtime(time))[3,4,5]; - timelocal(0,0,0,$mday,$mon,$year) + 86400 * $delay; + # avoid timelocal silliness + my $dt = DateTime->today(time_zone => 'local'); + $dt->add(days => $delay); + $dt->epoch; } sub freqs_href { |