version 1.42, 2007/10/18 21:08:31
|
version 1.47, 2008/07/02 21:31:32
|
Line 165 use Apache::localize;
|
Line 165 use Apache::localize;
|
use locale; |
use locale; |
use POSIX qw(locale_h strftime); |
use POSIX qw(locale_h strftime); |
use DateTime(); |
use DateTime(); |
|
use DateTime::TimeZone; |
|
|
require Exporter; |
require Exporter; |
|
|
Line 182 sub mt (@) {
|
Line 183 sub mt (@) {
|
# print LOG (@_[0]."\n"); |
# print LOG (@_[0]."\n"); |
# close(LOG); |
# close(LOG); |
if ($lh) { |
if ($lh) { |
return $lh->maketext(@_); |
if ($_[0] eq '') { |
|
if (wantarray) { |
|
return @_; |
|
} else { |
|
return $_[0]; |
|
} |
|
} else { |
|
return $lh->maketext(@_); |
|
} |
} else { |
} else { |
if (wantarray) { |
if (wantarray) { |
return @_; |
return @_; |
Line 259 sub get_language_handle {
|
Line 268 sub get_language_handle {
|
|
|
# ========================================================== Localize localtime |
# ========================================================== Localize localtime |
sub gettimezone { |
sub gettimezone { |
my ($time) = @_; |
my $timezone; |
if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}) { |
if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}) { |
return $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}; |
$timezone = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}; |
|
} elsif ($Apache::lonnet::env{'request.course.id'} ne '') { |
|
my $cdom = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.domain'}; |
|
if ($cdom ne '') { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom); |
|
if ($domdefaults{'timezone_def'} ne '') { |
|
$timezone = $domdefaults{'timezone_def'}; |
|
} |
|
} |
|
} |
|
if ($timezone ne '') { |
|
if (DateTime::TimeZone->is_valid_name($timezone)) { |
|
return $timezone; |
|
} |
} |
} |
return 'local'; |
return 'local'; |
} |
} |
Line 271 sub locallocaltime {
|
Line 293 sub locallocaltime {
|
if (!defined($thistime) || $thistime eq '') { |
if (!defined($thistime) || $thistime eq '') { |
return &mt('Never'); |
return &mt('Never'); |
} |
} |
|
if (($thistime < 0) || ($thistime eq 'NaN')) { |
|
&Apache::lonnet::logthis("Unexpected time (negative or NaN) '$thistime' passed to lonlocal::locallocaltime"); |
|
return &mt('Never'); |
|
} |
|
if ($thistime !~ /^\d+$/) { |
|
&Apache::lonnet::logthis("Unexpected non-numeric time '$thistime' passed to lonlocal::locallocaltime"); |
|
return &mt('Never'); |
|
} |
|
|
my $dt = DateTime->from_epoch(epoch => $thistime) |
my $dt = DateTime->from_epoch(epoch => $thistime) |
->set_time_zone(&gettimezone()); |
->set_time_zone(&gettimezone()); |
Line 289 sub locallocaltime {
|
Line 319 sub locallocaltime {
|
my $day = $dt->day_of_month(); |
my $day = $dt->day_of_month(); |
my $mon = $dt->month()-1; |
my $mon = $dt->month()-1; |
my $year = $dt->year(); |
my $year = $dt->year(); |
my $wday = $dt->wday()-1; |
my $wday = $dt->wday(); |
|
if ($wday==7) { $wday=0; } |
my $month =(split(/\,/,$lh->maketext('date_months')))[$mon]; |
my $month =(split(/\,/,$lh->maketext('date_months')))[$mon]; |
my $weekday=(split(/\,/,$lh->maketext('date_days')))[$wday]; |
my $weekday=(split(/\,/,$lh->maketext('date_days')))[$wday]; |
if ($seconds<10) { |
if ($seconds<10) { |