本文和大家重点讨论一下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
$yyyymmdd2=sprintf("%d.%d.%d",$year+1900,$mon+1,$mday);
#13点13分02秒
$hhmmssZH=sprintf("%02d点%02d分%02d秒",$hour,$min,$sec);
#13点13分2秒
$hhmmssZH2=sprintf("%d点%d分%d秒",$hour,$min,$sec);
#13:13:02
$hhmmss=sprintf("%02d:%02d:%02d",$hour,$min,$sec);
#13:13:2
$hhmmss2=sprintf("%d:%d:%d",$hour,$min,$sec);
#周四
$weekZH=sprintf("%s",("周日","周一","周二","周三","周四","周五","周六")[$wday]);
#Thursday
$weekE=sprintf("%s",("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")[$wday]);
#Thu
$week=sprintf("%s",("Sun","Mon","Tue","Wed","Thu","Fri","Sat")[$wday]);
【编辑推荐】