projects
/
BackupPC.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1e64554
)
use DateTime::Duration to correctly convert partial dates in to fields
author
Dobrica Pavlinusic
<dpavlin@rot13.org>
Sun, 30 Jan 2011 13:38:44 +0000
(14:38 +0100)
committer
Dobrica Pavlinusic
<dpavlin@rot13.org>
Sun, 30 Jan 2011 13:38:44 +0000
(14:38 +0100)
lib/BackupPC/Search.pm
patch
|
blob
|
history
diff --git
a/lib/BackupPC/Search.pm
b/lib/BackupPC/Search.pm
index
2fd2f98
..
70f084b
100644
(file)
--- a/
lib/BackupPC/Search.pm
+++ b/
lib/BackupPC/Search.pm
@@
-79,31
+79,28
@@
sub dates_from_form($) {
sub mk_epoch_date($$) {
my ($name,$suffix) = @_;
sub mk_epoch_date($$) {
my ($name,$suffix) = @_;
- my $yyyy = $param->{ $name . '_year_' . $suffix} || return undef;
- my $mm .= $param->{ $name . '_month_' . $suffix} ||
- ( $suffix eq 'from' ? 1 : 12);
- my $dd .= $param->{ $name . '_day_' . $suffix} ||
- ( $suffix eq 'from' ? 1 : 31);
+ my $yyyy = $param->{ $name . '_year_' . $suffix} || return undef;
+ my $mm = $param->{ $name . '_month_' . $suffix};
+ my $dd = $param->{ $name . '_day_' . $suffix};
$yyyy =~ s/\D//g;
$yyyy =~ s/\D//g;
- $mm =~ s/\D//g;
- $dd =~ s/\D//g;
-
- my $h = my $m = my $s = 0;
- if ($suffix eq 'to') {
- $h = 23;
- $m = 59;
- $s = 59;
- }
+ $mm =~ s/\D//g;
+ $dd =~ s/\D//g;
my $dt = new DateTime(
my $dt = new DateTime(
- year => $yyyy,
- month
=> $mm
,
- day
=> $dd
,
- hour
=> $h
,
- minute =>
$m
,
- second =>
$s
,
+ year
=> $yyyy,
+ month
=> $mm || 1
,
+ day
=> $dd || 1
,
+ hour
=> 0
,
+ minute =>
0
,
+ second =>
0
,
);
);
+ if ( $suffix eq 'to' && ( ! $mm || ! $dd ) ) {
+ $dt += DateTime::Duration->new( years => 1 ) if ! $mm;
+ $dt += DateTime::Duration->new( months => 1 ) if ! $dd;
+ $dt -= DateTime::Duration->new( days => 1 );
+ }
+
print STDERR "mk_epoch_date($name,$suffix) [$yyyy-$mm-$dd] = " . $dt->ymd . " " . $dt->hms . "\n";
return $dt->epoch || 'NULL';
}
print STDERR "mk_epoch_date($name,$suffix) [$yyyy-$mm-$dd] = " . $dt->ymd . " " . $dt->hms . "\n";
return $dt->epoch || 'NULL';
}