Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

47 lines (39 sloc) 1.491 kb
# Copyright 2002-2007 Interchange Development Group and others
# Copyright 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
# $Id: datetime2epoch.filter,v 1.2 2007-03-30 23:40:44 pajamian Exp $
CodeDef datetime2epoch Filter
CodeDef datetime2epoch Description Date and optional time to seconds since the UNIX Epoch
CodeDef datetime2epoch Routine <<EOR
sub {
use Time::Local;
my ($year, $mon, $day, $hr, $min, $sec, $time);
my $val = shift;
$val =~ s/\0+//g;
$val =~ m%^\s*(\d\d)[-/]+(\d+)[-/]+(\d+)% and do {
($year, $mon, $day) = ($3, $1, $2);
$val =~ /:(\d\d):?(\d\d)?:?(\d\d)?\s*$/
and $time = sprintf('T%02d:%02d:%02d', $1, $2 || 0, $3 || 0);
if (length($year) < 4) {
$year =~ s/^0//;
$year = $year < 50 ? $year + 2000 : $year + 1900;
}
$val = sprintf('%d-%02d-%02d%s', $year, $mon || 1, $day || 1, $time);
};
$val =~ /^\s*(\d\d\d\d)-(\d\d)-(\d\d)(?:[T\s](\d\d)?(?::(\d\d)?(?::(\d\d)?)?)?)?/;
($year, $mon, $day, $hr, $min, $sec) = ($1, $2, $3, $4 || 0, $5 || 0,$6 || 0);
eval {
$time = timelocal($sec, $min, $hr, $day, --$mon, $year);
};
if ($@) {
logError("bad time value passed to datetime2epoch: %s", $@);
return 0;
}
return $time;
}
EOR
Jump to Line
Something went wrong with that request. Please try again.