Bug 25617: (bug 25133 follow-up) 12 PM is not 24 but 0
There was an error in the precedent code, in 12hr format, 12PM is actually 00:00 Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Julian Maurice <julian.maurice@biblibre.com> Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
a79cf4150e
commit
dd0c7c55fc
2 changed files with 32 additions and 2 deletions
|
@ -183,7 +183,14 @@ sub dt_from_string {
|
|||
$dt_params{minute} = 00 unless defined $dt_params{minute};
|
||||
$dt_params{second} = 00 unless defined $dt_params{second};
|
||||
|
||||
$dt_params{hour} += 12 if $ampm && $ampm eq 'PM';
|
||||
if ( $ampm ) {
|
||||
if ( $ampm eq 'AM' ) {
|
||||
$dt_params{hour} = 00 if $dt_params{hour} == 12;
|
||||
} elsif ( $dt_params{hour} != 12 ) { # PM
|
||||
$dt_params{hour} += 12;
|
||||
$dt_params{hour} = 00 if $dt_params{hour} == 24;
|
||||
}
|
||||
}
|
||||
|
||||
my $dt = eval {
|
||||
DateTime->new(
|
||||
|
|
|
@ -4,7 +4,7 @@ use DateTime::TimeZone;
|
|||
|
||||
use C4::Context;
|
||||
|
||||
use Test::More tests => 76;
|
||||
use Test::More tests => 79;
|
||||
|
||||
use Test::MockModule;
|
||||
use Test::Warn;
|
||||
|
@ -258,7 +258,30 @@ $dt = dt_from_string('2015-01-31 01:02 PM');
|
|||
is( output_pref( {dt => $dt} ), '31/01/2015 13:02', 'dt_from_string ' );
|
||||
$dt = dt_from_string('2015-01-31 01:02:03 PM');
|
||||
is( output_pref( {dt => $dt} ), '31/01/2015 13:02', 'dt_from_string ' );
|
||||
$dt = dt_from_string('2015-01-31 12:02 AM');
|
||||
is( output_pref( {dt => $dt} ), '31/01/2015 00:02', 'dt_from_string ' );
|
||||
$dt = dt_from_string('2015-01-31 12:02:03 AM');
|
||||
is( output_pref( {dt => $dt} ), '31/01/2015 00:02', 'dt_from_string ' );
|
||||
|
||||
subtest 'TimeFormat 12hr' => sub {
|
||||
plan tests => 4;
|
||||
|
||||
$dt = DateTime->new( year => 2020, month => 5, day => 28, hour => 12, minute => 49 );
|
||||
t::lib::Mocks::mock_preference('TimeFormat', '12hr');
|
||||
my $output = output_pref({ dt => $dt, dateformat => 'iso' });
|
||||
$dt = dt_from_string( $output, 'iso' );
|
||||
is( output_pref( {dt => $dt} ), '28/05/2020 12:49 PM' );
|
||||
t::lib::Mocks::mock_preference('TimeFormat', '24hr');
|
||||
is( output_pref( {dt => $dt} ), '28/05/2020 12:49' );
|
||||
|
||||
$dt = DateTime->new( year => 2020, month => 5, day => 28, hour => 0, minute => 49 );
|
||||
t::lib::Mocks::mock_preference('TimeFormat', '12hr');
|
||||
$output = output_pref({ dt => $dt, dateformat => 'iso' });
|
||||
$dt = dt_from_string( $output, 'iso' );
|
||||
is( output_pref( {dt => $dt} ), '28/05/2020 12:49 AM' );
|
||||
t::lib::Mocks::mock_preference('TimeFormat', '24hr');
|
||||
is( output_pref( {dt => $dt} ), '28/05/2020 00:49' );
|
||||
};
|
||||
|
||||
# output_pref with no parameters, single parameter (no hash)
|
||||
is( output_pref(), undef, 'Call output_pref without parameters' );
|
||||
|
|
Loading…
Reference in a new issue