[LON-CAPA-cvs] cvs: loncom /metadata_database searchcat.pl

www lon-capa-cvs@mail.lon-capa.org
Fri, 18 Oct 2002 13:54:32 -0000


www		Fri Oct 18 09:54:32 2002 EDT

  Modified files:              
    /loncom/metadata_database	searchcat.pl 
  Log:
  Bug 839
  
  
Index: loncom/metadata_database/searchcat.pl
diff -u loncom/metadata_database/searchcat.pl:1.23 loncom/metadata_database/searchcat.pl:1.24
--- loncom/metadata_database/searchcat.pl:1.23	Tue Oct  8 14:45:33 2002
+++ loncom/metadata_database/searchcat.pl	Fri Oct 18 09:54:31 2002
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # searchcat.pl "Search Catalog" batch script
 #
-# $Id: searchcat.pl,v 1.23 2002/10/08 18:45:33 albertel Exp $
+# $Id: searchcat.pl,v 1.24 2002/10/18 13:54:31 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -45,6 +45,7 @@
 use HTML::TokeParser;
 use DBI;
 use GDBM_File;
+use POSIX qw(strftime mktime);
 
 my @metalist;
 
@@ -335,7 +336,30 @@
 # ---------------------------- convert 'time' format into a datetime sql format
 sub sqltime {
     my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
-	localtime(@_[0]);
+	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;
+}
+