Skip to content
This repository
branch: cvs-keyword-re…
Fetching contributors…

Cannot retrieve contributors at this time

file 85 lines (78 sloc) 2.16 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
# Copyright 2002-2007 Interchange Development Group and others
#
# 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.

UserTag convert-date Order adjust
UserTag convert-date PosNumber 1
UserTag convert-date addAttr
UserTag convert-date AttrAlias fmt format
UserTag convert-date AttrAlias days adjust
UserTag convert-date HasEndTag
UserTag convert-date Interpolate
UserTag convert-date Version 3.0
UserTag convert-date Routine <<EOR
sub {
    my ($adjust, $opt, $text) = @_;
    my @t;
    my $now;

if(! ref $opt) {
my $raw = $opt ? 1 : 0;
$opt = {};
$opt->{raw} = 1 if $raw;
}

my $fmt = $opt->{format} || '';
if($text =~ /^(\d\d\d\d)-(\d?\d)-(\d?\d)$/) {
$t[5] = $1 - 1900;
$t[4] = $2 - 1;
$t[3] = $3;
$t[8] = -1;
}
elsif($text =~ /\d/) {
$text =~ s/\D//g;
$text =~ /(\d\d\d\d)(\d\d)(\d\d)(?:(\d\d)(\d\d))?/;
$t[2] = $4 || undef;
$t[1] = $5 || undef;
$t[3] = $3;
$t[4] = $2 - 1;
$t[5] = $1;
$t[5] -= 1900;
$t[8] = -1;
}
elsif (exists $opt->{empty}) {
return $opt->{empty};
}
else {
$now = time();
@t = localtime($now) unless $adjust;
}

if ($adjust) {
$now ||= POSIX::mktime(@t);
$adjust .= ' days' if $adjust =~ /^[-\s\d]+$/;
@t = localtime(adjust_time($adjust, $now, $opt->{compensate_dst}));
}

if (defined $opt->{raw} and Vend::Util::is_yes($opt->{raw})) {
$fmt = $t[2] && $text ? '%Y%m%d%H%M' : '%Y%m%d';
}

if (! $fmt) {
if ($t[1] || $t[2]) {
$fmt = '%d-%b-%Y %I:%M%p';
} else {
$fmt = '%d-%b-%Y';
}
}

my ($current, $out);
my $locale = $opt->{locale} || $Scratch->{mv_locale};
if ($locale) {
$current = POSIX::setlocale(&POSIX::LC_TIME);
POSIX::setlocale(&POSIX::LC_TIME, $locale);
$out = POSIX::strftime($fmt, @t);
POSIX::setlocale(&POSIX::LC_TIME, $current);
} else {
$out = POSIX::strftime($fmt, @t);
}
$out =~ s/\b0(\d)\b/$1/g if $opt->{zerofix};
return $out;
}
EOR
Something went wrong with that request. Please try again.