--- loncom/interface/lonmysql.pm 2003/06/02 17:01:05 1.15 +++ loncom/interface/lonmysql.pm 2003/12/26 19:12:51 1.16 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # MySQL utility functions # -# $Id: lonmysql.pm,v 1.15 2003/06/02 17:01:05 matthew Exp $ +# $Id: lonmysql.pm,v 1.16 2003/12/26 19:12:51 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -32,6 +32,8 @@ package Apache::lonmysql; use strict; use DBI; use Apache::lonnet(); +use POSIX qw(strftime mktime); + ###################################################################### ###################################################################### @@ -1042,6 +1044,39 @@ sub drop_table { return 1; # if we got here there was no error, so return a 'true' value } + + + +# ---------------------------- convert 'time' format into a datetime sql format +sub sqltime { + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = + localtime(&unsqltime($_[0])); + $mon++; $year+=1900; + return "$year-$mon-$mday $hour:$min:$sec"; +} + +sub maketime { + my %th=@_; + return POSIX::mktime(($th{'seconds'},$th{'minutes'},$th{'hours'}, + $th{'day'},$th{'month'}-1, + $th{'year'}-1900,0,0,$th{'dlsav'})); +} + + +######################################### +# +# Retro-fixing of un-backward-compatible time format + +sub unsqltime { + my $timestamp=shift; + if ($timestamp=~/^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/) { + $timestamp=&maketime('year'=>$1,'month'=>$2,'day'=>$3, + 'hours'=>$4,'minutes'=>$5,'seconds'=>$6); + } + return $timestamp; +} + + 1; __END__;