如何进行时间比较?

如何进行时间比较?

现从系统中取出来的时间格式为:
$time1=2007-09-30 00:00:00
$time2= 2007-10-11 20:00:00

如何判断$time1和$time2 所在的前后关系。

现在需要判断time2 是否是 ge   $time 1


希望大家给我好的想法。
CPAN 上有现成的模块


[Copy to clipboard] [ - ]
CODE:
return $year2<$year1?0:$month2<$month1?):$day2<day1?0:$hour2<$hour1?0:$min2<$min1?0:$sec2=<$sec1?0:1;

偶尝试的关键代码,写个小sub,这个作为返回,把time首先分隔为以上变量
另一种方式可以试试用Time::Local 下的timelocal()试试看
打击。。。。
#!/usr/bin/perl -w
use strict;
sub compare {
        my @time1=split("[-: ]",$_[0]);
        my @time2=split("[-: ]",$_[1]);
        foreach my $a(@time1){
                foreach my $b(@time2){
                        if($a>$b){
                                print "$_[0]\tbig\n";
                                exit;
                        }elsif($a<$b){
                                print "$_[1]\tbig\n";
                                exit;
                        }else{
                                shift @time2;
                                if(!$#time2){
                                        print "eq\n";
                                        exit;
                                }
                                last;
                        }
                }
        }
}
&compare('2007-09-30 00:00:00','2007-10-11 20:00:00');
对于
'2007-09-30 00:00:00'
'2007-10-11 20:00:00'

如果是严格按此格式的字符串, 那么按字符串大小来比较(gt,ge,lt,le)是可以的.
DateTime 模块?


QUOTE:
原帖由 Lonki 于 2007-9-25 15:28 发表
对于
'2007-09-30 00:00:00'
'2007-10-11 20:00:00'

如果是严格按此格式的字符串, 那么按字符串大小来比较(gt,ge,lt,le)是可以的.


更沉重的打击