diff --git a/lib/WebGUI/DateTime.pm b/lib/WebGUI/DateTime.pm index 049add201..b320c0731 100644 --- a/lib/WebGUI/DateTime.pm +++ b/lib/WebGUI/DateTime.pm @@ -599,14 +599,18 @@ sub _splitMysql (\d+) # Month \D* (\d+) # Day - \D* - (\d+) # Hours - \D* - (\d+) # Minutes - \D* - (\d+) # Seconds + (?: \D* + (\d+) # Hours + \D* + (\d+) # Minutes + \D* + (\d+) # Seconds + )? }x; + foreach my $unit (qw/hour minute second/) { + $hash{$unit} = 0 if ($hash{$unit} eq ''); + } return %hash; } diff --git a/t/DateTime.t b/t/DateTime.t index 9834dad58..07cb7976e 100644 --- a/t/DateTime.t +++ b/t/DateTime.t @@ -26,7 +26,7 @@ my $session = WebGUI::Test->session; # put your tests here -plan tests => 23; +plan tests => 25; my $timeZoneUser = addUser($session); @@ -76,6 +76,14 @@ my $dt1970 = WebGUI::DateTime->new($session, 0); isa_ok($dt1970, 'WebGUI::DateTime', 'constructed with 0'); is($dt1970->epoch, 0, '... uses 0 for epoch'); +my $bday = WebGUI::DateTime->new($session, '2001-08-16'); +isa_ok($bday, 'WebGUI::DateTime', 'constructed with mysql date, no time'); +is( + $bday->epoch, + WebGUI::DateTime->new($session, WebGUI::Test->webguiBirthday)->truncate( to => 'day')->epoch, + '... has correct epoch' +); + sub addUser { my $session = shift; my $user = WebGUI::User->new($session, "new");