X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FDates.pm;h=451e2d34b7bf56f6b7d479c14bae73a23f714f00;hb=bc48e8d7dc324e0d40bb6ef09493b798d8a476a8;hp=1064fa462c9e8e45fdc0de68594f3ec704d2fef8;hpb=abb2e6616b85ce88f43928a53b50a3cd31d7d900;p=koha.git diff --git a/C4/Dates.pm b/C4/Dates.pm index 1064fa462c..451e2d34b7 100644 --- a/C4/Dates.pm +++ b/C4/Dates.pm @@ -63,12 +63,17 @@ our %dmy_subs = ( # strings to eval (after using regular expression returned sub regexp ($;$) { my $self = shift; my $delim = qr/:?\:|\/|-/; # "non memory" cluster: no backreference - my $format = (@_) ? shift : $self->{'dateformat'}; # w/o arg. relies on dateformat being defined + my $format = (@_) ? _recognize_format(shift) : ($self->{'dateformat'} || _prefformat()); + + # Extra layer of checking $self->{'dateformat'}. + # Why? Because it is assumed you might want to check regexp against an *instantiated* Dates object as a + # way of saying "does this string match *whatever* format that Dates object is?" + ($format eq 'sql') and - return qr/^(\d{4})(\d{2})(\d{2})(?:\s{4}(\d{2})(\d{2})(\d{2}))?/; + return qr/^(\d{4})(\d{1,2})(\d{1,2})(?:\s{4}(\d{2})(\d{2})(\d{2}))?/; ($format eq 'iso') and - return qr/^(\d{4})$delim(\d{2})$delim(\d{2})(?:(?:\s{1}|T)(\d{2})\:?(\d{2})\:?(\d{2}))?Z?/; - return qr/^(\d{2})$delim(\d{2})$delim(\d{4})(?:\s{1}(\d{2})\:?(\d{2})\:?(\d{2}))?/; # everything else + return qr/^(\d{4})$delim(\d{1,2})$delim(\d{1,2})(?:(?:\s{1}|T)(\d{2})\:?(\d{2})\:?(\d{2}))?Z?/; + return qr/^(\d{1,2})$delim(\d{1,2})$delim(\d{4})(?:\s{1}(\d{1,2})\:?(\d{1,2})\:?(\d{1,2}))?/; # everything else } sub dmy_map ($$) {