Bug 32232: Ignore DST when calculating patron age
This change calculates patron age using the floating timezone, so that
datetimes missing midnight don't cause fatal errors in the comparison.
Test plan:
0. Apply patch
1. Change <timezone></timezone> in koha-conf.xml to include Canada/Eastern
2. koha-plack --restart kohadev
3. Create a patron, setting the date of birth to one of these three dates
- 1947-04-27
- 1948-04-25
- 1949-04-24
4. Save the patron
5. Patron detail page loads instead of producing fatal error
Signed-off-by: Marius Mandrescu <marius.mandrescu@inLibro.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 5771e6f463)
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
This commit is contained in:
parent
2f156c15dc
commit
beaf8076cf
|
|
@ -1312,8 +1312,9 @@ sub get_age {
|
|||
|
||||
return unless $self->dateofbirth;
|
||||
|
||||
my $date_of_birth = dt_from_string( $self->dateofbirth );
|
||||
my $today = dt_from_string->truncate( to => 'day' );
|
||||
#Set timezone to floating to avoid any datetime math issues caused by DST
|
||||
my $date_of_birth = dt_from_string( $self->dateofbirth, undef, 'floating' );
|
||||
my $today = dt_from_string(undef, undef, 'floating')->truncate( to => 'day' );
|
||||
|
||||
return $today->subtract_datetime( $date_of_birth )->years;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue