解析两大Perl时间函数区别
本文和大家重点讨论一下Perl时间函数的概念,Perl语言中有两个取得Perl时间函数:localtime()和gmtime(),两个函数的用法一样,区别在于localtime为取得本地时间,gmtime格林威治时间。
Perl时间函数
Perl语言中有两个取得Perl时间函数:localtime()和gmtime()
两个函数的用法一样,区别在于localtime为取得本地时间,gmtime格林威治时间
#!/usr/bin/Perl
#getlocaltime
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
其中:
$sec代表秒数[0,59]
$min代表分数[0,59]
$hour代表小时数[0,23]
$mday代表是在这个月的第几天[1,31]
$mon代表月数[0,11],要将$mon加1之后,才能符合实际情况。
$year从1990年算起的年数
$wday从星期六算起,代表是在这周中的第几天[0-6]
$yday从一月一日算起,代表是在这年中的第几天[0,364]
$isdst只是一个flag
知道这些变量之后,就可以在CGI应用程序中拿来应用了。此外,Perl时间函数也可以用下面这一行指令在UNIX系统下取得系统的时间。为了避免错误发生,最好用绝对路径的方法来取得系统时间,如果绝对路径不清楚的话可以用”whichdata”这个指令来得知。最后要提字符的话,就不能正确执行系统的程序了。$data=’/usr/bin/data’;而在Perl5版本中,也可以用下面这一行指令来取得系统时间
Perl时间函数的例子:
格式化所需要的时间变量:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
#2001年08月09日
$yyyymmddZH=sprintf("%04d年%02d月%02d日",$year+1900,$mon+1,$mday);
#2001年8月9日
$yyyymmddZH2=sprintf("%d年%d月%d日",$year+1900,$mon+1,$mday);
#2001.08.09
$yyyymmdd=sprintf("%04d.%02d.%02d",$year+1900,$mon+1,$mday);
#2001.08.09