Changeset 1743
- Timestamp:
- 10/14/06 13:55:44
- Files:
-
- trunk/plagger/deps/Filter-GuessTimeZoneByDomain.yaml (added)
- trunk/plagger/lib/Plagger/Date.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin/Filter/GuessTimeZoneByDomain.pm (added)
- trunk/plagger/t/99-pod-spell.t (modified) (1 diff)
- trunk/plagger/t/core/date-parse.t (added)
- trunk/plagger/t/plugins/Filter-GuessTimeZoneByDomain (added)
- trunk/plagger/t/plugins/Filter-GuessTimeZoneByDomain/base.t (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger/Date.pm
r1734 r1743 34 34 35 35 require Date::Parse; 36 my $time = Date::Parse::str2time($str) or return; 36 my($sec, $min, $hour, $day, $month, $year, $zone) = Date::Parse::strptime($str); 37 defined $sec or return; 37 38 38 $class->from_epoch($time); 39 my $dt = $class->new( 40 year => $year + 1900, 41 month => $month + 1, 42 day => $day, 43 hour => $hour, 44 minute => $min, 45 second => $sec, 46 ); 47 48 if (defined $zone) { 49 use integer; 50 my $offset = $zone / 60; 51 my $sign; 52 if ($zone >= 0) { 53 $sign = '+'; 54 } else { 55 $sign = '-'; 56 $offset = -$offset; 57 } 58 my $hour = $offset / 60; 59 my $minute = $offset % 60; 60 my $tz = sprintf '%s%02d%02d', $sign, $hour, $minute; 61 $dt->set_time_zone($tz); 62 } 63 64 $dt; 39 65 } 40 66 … … 59 85 my $class = shift; 60 86 my %p = @_ == 1 ? (epoch => $_[0]) : @_; 61 62 $p{time_zone} = Plagger->context->conf->{timezone} || 'local';63 87 $class->SUPER::from_epoch(%p); 64 88 } trunk/plagger/t/99-pod-spell.t
r1741 r1743 288 288 plaintext 289 289 Trackback 290 ccTLD 291 cc 292 asahi 293 ip 294 timezones 295 www
