首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

我自己写的一个计算两个时间差的函数!

刚才看到一个帖子问到的,就想写一个函数,为了方便嘛,呵呵
大家看看吧
呵呵,5分钟写的,哈哈,其实里面还包含一个以前写的转换gmt时间为unix时间的函数。

CODE:
[Copy to clipboard]
<?
function time_reduce($time_start,$time_end,$type) {
    
////  函数编写设计:Webmaster@deepseath.com
    ////  Deepseath函数库编号:function_code_04
    ////  为免费提供,如果使用恳请保留版权信息。
    ////  函数说明:
    ////  该函数是计算两个gmt时间差的
    ////  GMT必须型如:1979-07-31 08:16:18
    ////  标准格式为: time_reduce($time_start,$time_end,$type)
    ////  其中,$time_start为开始时间,
    ////       $time_end为结束时间
    ////       $type,为输出类型,
    ////           默认为输入时间的秒数
    ////           type="i"输出为分钟
    ////           type="h"输出为小时
    ////  注:本函数返回的是两个GMT长时间的时间差(秒、分钟、小时)
    
function unix_time ($gmt_time) {
        
////  函数编写设计:Webmaster@deepseath.com
        ////  Deepseath函数库编号:function_code_02
        ////  为免费提供,如果使用恳请保留版权信息。
        ////  函数说明:
        ////  该函数是将GMT时间戳转换成UNIX时间戳的
        ////  GMT必须型如:1979-07-31 08:16:18
        ////      该格式在Deepseath自定义为长时间格式
        ////  标准格式为: time_unix(gmt_time,type)
        ////  其中gmt_time,为传入的GMT长时间格式;
        ////      type,为输出日期的整点设置,
        ////           默认为输入时间的unix时间戳
        ////           type=1输出整点时间的unix时间戳
        ////  注:本函数返回的是GMT长时间的对应UINX时间戳
        
$gmt_time_format_d=explode("-",$gmt_time);
        
$time_Y=$gmt_time_format_d["0"];
        
$time_m=$gmt_time_format_d["1"];
        
$time_d_format=$gmt_time_format_d["2"];
        
$time_d_format=explode(" ",$gmt_time_format_d["2"]);
        
$time_d=$time_d_format["0"];
        
$time_gmt_format_s=$time_d_format["1"];
        
$time_gmt_format_s=explode(":",$time_gmt_format_s);
        
$time_H=$time_gmt_format_s["0"];
        
$time_i=$time_gmt_format_s["1"];
        
$time_unix=mktime($time_H,$time_i,$time_s,$time_m,$time_d,$time_Y);
        return 
$time_unix;
        }
        
$time_start=unix_time($time_start);
        
$time_end=unix_time($time_end);
        
$time_reduce=$time_end-$time_start;
        if (
$type=="i") {
            
$time_reduce=number_format(($time_reduce/3600), 2);
            }
        elseif (
$type=="h") {
            
$time_reduce=number_format(($time_reduce/3600), 2);
            }
        return 
$time_reduce;
        }
//使用举例:
echo time_reduce("2002-05-16 13:18:00","2002-05-16 13:40:00");//输出秒数(默认)
//echo time_reduce("2002-05-16 07:00:00","2002-05-16 08:10:00");//输出分钟
//echo time_reduce("2002-05-16 07:00:00","2002-05-16 08:10:00");//输出小时
?>
大家给完善一下吧。
对于代码的格式也欢迎提建议。
昵称: deepseath  时间: 2003-07-05 18:00:00
怎么没有人支持呢?
哪怕提点建议
帮助完善一下呀

这个函数功能不好吗?
昵称: deepseath  时间: 2003-07-05 18:54:00
支持!
昵称: yhlong  时间: 2003-07-05 19:09:00
没这么复杂吧
昵称: wxffwxff  时间: 2003-07-05 21:01:00
不就是用mktime 转换之后进行 加 、减 就好了吗?
昵称: ice-hotty  时间: 2003-07-05 21:07:00