Perl处理日期时间的技巧
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-15
间。如果你打算把它转换为字符串,就可使用gmtime() 和localtime() 函数: $now = localtime(time()); ($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = localtime(time()); 如果调用 localtime() 或gmtime() 时不带参数,它将自己调用time() $now = localtime(); ($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = localtime(); 常见的日期和时间操作 如果你打算计算两个时刻之间的时间段,只需将它们转换为相应的纪元秒,然后两数相减即可: $difference_in_seconds = $later_datetime -$earlier_datetime; 要把秒转换为分,时,或天数,只需要分别将它们除以60, 3600 和 86400 即可: $difference_in_minutes = $difference_in_seconds / 60; $difference_in_hours = $difference_in_seconds / 3600; $difference_in_day = $difference_in_seconds / 86400; 反过来做,你也可以回答如下问题:”4天后是几号?”: $then = time() + 86400 * 4; print scalar localtime $then; 它给出的答案精确到秒。例如,如果4天后的纪元秒值为932836935, 你可以输出日期的字符串如下; Sat Jul 24 11:23:17 1999 如果你打算输出那个日期的午夜时分 (如”Sat Jul 24 00:00:00 1999″) 使用如下模块:$then = $then - $then % 86400; # 去掉那个日期的尾巴 类似地,你可以用四舍五入法,输出最靠近午夜时分的日期: $then += 43200; # add on half a day $then = $then - $then % 86400;# truncate to the day 如果你的时区距离GMT为相差偶数个小时,这就管用了。并不是所有的时区都是很容易处理的。你所真正需要的是在你自己的时区内计算纪元秒,而不是在GMT中计算。 Perl 中的名为Time::Local的模块,可以提供两个函数 timelocal() 和timegm()。其返回值同 localtime() 和gmtime() 一样。 use Time::Local; $then = time() + 4*86400; $then = timegm localtime $then; # local epoch seconds $then -= $then % 86400; # truncate to the day $then = timelocal gmtime $then; # back to gmt epoch seconds print scalar localtime $then, “\n”; 日常生活所用的日期和时间的表示 你已经级掌握了时,分,年等值的含义,也了解了纪元秒的含义。而日常生活中的日期和时间是用字符串来表示的,你怎样才能把日常所用的日期和时间串格式转换成纪元秒呢? 方法之一是写出语法分析小程序,该方法灵活而快速: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Perl操作mysql数据库的方法下一篇: php教程:php设计模式介绍之适配器模式
关于Perl处理日期时间的技巧的所有评论