debug VMX::Common::timestamp()

databind
vitalif 2009-12-02 18:21:37 +00:00 committed by Vitaliy Filippov
parent c235f84f1a
commit bdde2886b2
1 changed files with 19 additions and 18 deletions

View File

@ -11,18 +11,19 @@ use constant {
HASHARRAY => {Slice=>{}},
TS_UNIX => 0,
TS_DB => 1,
TS_MW => 2,
TS_EXIF => 3,
TS_ORACLE => 4,
TS_ISO_8601 => 5,
TS_RFC822 => 6,
TS_DB_DATE => 2,
TS_MW => 3,
TS_EXIF => 4,
TS_ORACLE => 5,
TS_ISO_8601 => 6,
TS_RFC822 => 7,
};
require Exporter;
our @EXPORT = qw(
HASHARRAY
TS_UNIX TS_MW TS_DB TS_EXIF TS_ORACLE TS_ISO_8601 TS_RFC822
TS_UNIX TS_MW TS_DB TS_DB_DATE TS_EXIF TS_ORACLE TS_ISO_8601 TS_RFC822
);
our @EXPORT_OK = qw(
HASHARRAY quotequote min max trim htmlspecialchars strip_tags strip_unsafe_tags
@ -542,19 +543,15 @@ sub timestamp
my ($ts, $format) = @_;
require POSIX;
if (!$ts)
if (int($ts) eq $ts)
{
# Epoch
$ts = time;
# TS_UNIX or Epoch
$ts = time if !$ts;
}
elsif (int($ts) eq $ts)
elsif ($ts =~ /^\D*(\d{4,})\D*(\d{2})\D*(\d{2})\D*(?:(\d{2})\D*(\d{2})\D*(\d{2})\D*([\+\- ]\d{2}\D*)?)?$/so)
{
# TS_UNIX
}
elsif ($ts =~ /^\D*(\d{4,})\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*(\d{2})\D*([\+\- ]\d{2}\D*)?$/so)
{
# TS_DB, TS_MW, TS_EXIF, TS_ISO_8601
$ts = POSIX::mktime($6, $5, $4, $3, $2-1, $1-1900);
# TS_DB, TS_DB_DATE, TS_MW, TS_EXIF, TS_ISO_8601
$ts = POSIX::mktime($6||0, $5||0, $4||0, $3, $2-1, $1-1900);
}
elsif ($ts =~ /^\s*(\d\d?)-(...)-(\d\d(?:\d\d)?)\s*(\d\d)\.(\d\d)\.(\d\d)/so)
{
@ -568,8 +565,8 @@ sub timestamp
}
else
{
# Bogus value, fall back to epoch
$ts = time;
# Bogus value, return undef
return undef;
}
if (!$format)
@ -585,6 +582,10 @@ sub timestamp
{
return POSIX::strftime("%Y-%m-%d %H:%M:%S", localtime($ts));
}
elsif ($format == TS_DB_DATE)
{
return POSIX::strftime("%Y-%m-%d", localtime($ts));
}
elsif ($format == TS_ISO_8601)
{
return POSIX::strftime("%Y-%m-%dT%H:%M:%SZ", localtime($ts));