Embperl
view release on metacpan or search on metacpan
Embperl/Form/Control/datetime.pm view on Meta::CPAN
}
my $date ;
if ($time =~ /^(\d\d\d\d)-(\d+)$/)
{
$date = $time ;
}
elsif ($d == 0 && $m == 0)
{
$date = $y ;
}
elsif ($d == 0)
{
$date = "$m.$y" ;
}
else
{
# Getting the local timezone
$date = eval
{
my @time = gmtime(timegm_nocheck($s,$min,$h,$d,$m-1,$y-1900)+($tz_local*60));
my $format = $self -> {notime} || ($s == 0 && $h == 0 && $min == 0)?'%d.%m.%Y':'%d.%m.%Y, %H:%M' ;
$format = '%d.%m.%Y, %H:%M:%S' if ($self -> {fulltime}) ;
strftime ($format, @time[0..5]) ;
} ;
}
if ($time && !$date && ($time =~ /\d+\.\d+\.\d+/))
{
$date = $time ;
}
return $date ;
}
# ------------------------------------------------------------------------------------------
#
# get_sort_value - returns the value that should be used to sort
#
sub get_sort_value
{
my ($self, $req, $value) = @_ ;
$value = $self -> get_value ($req) if (!defined ($value)) ;
return $value ;
}
# ------------------------------------------------------------------------------------------
#
# init_data - daten aufteilen
#
sub init_data
{
my ($self, $req, $parentctrl, $force) = @_ ;
my $fdat = $req -> {docdata} || \%fdat ;
my $name = $self->{name} ;
my $time = $fdat->{$name} ;
return if (($time eq '' && !exists $self -> {onempty}) || $self -> {format} eq '-' || ($req -> {"ef_datetime_init_done_$name"} && !$force)) ;
$fdat->{$name} = $self -> get_display_text ($req, $time) ;
$req -> {"ef_datetime_init_done_$name"} = 1 ;
}
# ---------------------------------------------------------------------------
#
# init_markup - add any dynamic markup to the form data
#
sub init_markup
{
my ($self, $req, $parentctl, $method) = @_ ;
return if (!$self -> is_readonly($req) && (! $parentctl || ! $parentctl -> is_readonly($req))) ;
return $self -> init_data ($req, $parentctl) ;
}
# ---------------------------------------------------------------------------
#
# str2time
#
sub str2time
{
my ($date) = @_ ;
my ($year, $mon, $day, $hour, $min, $sec) ;
if ($date eq '*' || $date eq '.')
{
my $offset ||= 0 ;
($sec, $min, $hour, $day, $mon, $year) = gmtime (time + $offset) ;
$year += 1900 ;
$mon++ ;
}
else
{
$date =~ tr/,;/ / ;
my ($d, $t) = split (/\s+/, $date) ;
if ($d =~ /:/)
{
$t = $d ;
$d = '' ;
}
($day, $mon, $year) = map { $_ + 0 } split (/\./, $d) ;
($hour, $min, $sec) = map { $_ + 0 } split (/\:/, $t) ;
if ($year == 0 || $mon == 0 || $day == 0)
{
my ($s, $min, $h, $md, $m, $y) = localtime ;
$day ||= $md ;
( run in 3.183 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )