解析兩大Perl時間函數區(qū)別
本文和大家重點討論一下Perl時間函數的概念,Perl語言中有兩個取得Perl時間函數:localtime()和gmtime(),兩個函數的用法一樣,區(qū)別在于localtime為取得本地時間,gmtime格林威治時間。
Perl時間函數
Perl語言中有兩個取得Perl時間函數:localtime()和gmtime()
兩個函數的用法一樣,區(qū)別在于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系統(tǒng)下取得系統(tǒng)的時間。為了避免錯誤發(fā)生,***用絕對路徑的方法來取得系統(tǒng)時間,如果絕對路徑不清楚的話可以用”whichdata”這個指令來得知。***要提字符的話,就不能正確執(zhí)行系統(tǒng)的程序了。$data=’/usr/bin/data’;而在Perl5版本中,也可以用下面這一行指令來取得系統(tǒng)時間
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]);
【編輯推薦】