InfoQ

交流

讨论:有没有计算两个时间的间隔的程序

作者 tonyny 发布于 0000-00-00 分类:php基础编程

我写了一个计算两个时间的间隔的程序,快有300多行了。各位高手有没有简洁一点的?计算间隔时要求剔除下班时间,星期六星期天。



逛论坛交流有没有计算两个时间的间隔的程序

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

10 条回复

回复

谢谢,程序很精简。 但是我测试了一下.. 发表人 tonyny 发表于 12月02日
临时写的 有些仓促 不知道 可不可以 .. 发表人 蓝色地平线 发表于 12月02日
是呀,就是后者麻烦 发表人 tonyny 发表于 12月02日
是条件太复杂了吗?但这在现实中很多应.. 发表人 tonyny 发表于 12月02日
是太复杂了 除去上下班时间还好说 星.. 发表人 蓝色地平线 发表于 12月02日
我的程序只计算了过去,当然如果能计算.. 发表人 tonyny 发表于 12月02日
昨天、今天和明天 我给你先发一个.. 发表人 kitten 发表于 12月02日
应该没有这么长吧 等后面的高手帮忙吧.. 发表人 yuguanglou 发表于 12月02日
  1. 谢谢,程序很精简。
    但是我测试了一下
    get_date("2003-11-6 8:00:00","2003-11-7 9:00:00","8:00:00","16:00:00"); 结果是“偶已经奋斗了 -7 小时 0 分钟 0 秒工作日^_^ ”
    再有,上班时间有两段

  2. 返回顶部

    Re: 有没有计算两个时间的间隔的程序

    2003年12月02日 发表人 蓝色地平线

    临时写的 有些仓促 不知道 可不可以 试试看吧
    [php]
    <?
    function get_date($DATE_START,$DATE_END,$start_job="08:00:00",$end_job="17:30:00")
    {
    $Date_2=$DATE_START;//也可以是Date_1="2003-6-25 23:29:14";
    $Date_1=$DATE_END;
    $d1=strtotime($Date_1);
    $d2=strtotime($Date_2);
    $d3=24*60*60-(strtotime($end_job)-strtotime($start_job));
    $i=$total=0;
    while(($d2+$i*60*60*24)<$d1)
    {
    if(date("w",$d2+$i*60*60*24)==0||date("w",$d2+$i*60*60*24)==6)
    {
    $total=$total+1;
    }
    $i++;
    }
    $dd=60*60*24*$total;
    $Hours=floor(($d1-$d2-$dd-$d3*($i-$total))/3600);
    $Minites=floor((($d1-$d2-$dd-$d3*($i-$total))%3600)/60);
    $Seconds=((($d1-$d2)%3600)%60);
    Echo "偶已经奋斗了 $Hours 小时 $Minites 分钟 $Seconds 秒工作日^_^";
    }
    get_date("2003-11-6","2003-11-10","8:00:00","16:00:00");
    ?>

    [/php]

  3. 是呀,就是后者麻烦

  4. 可以根据给出的时间算出是星期几,后面不就好弄了吗?

  5. 是条件太复杂了吗?但这在现实中很多应用呀

  6. 返回顶部

    Re: 有没有计算两个时间的间隔的程序

    2003年12月02日 发表人 蓝色地平线

    是太复杂了 除去上下班时间还好说 星期六星期天 就麻烦了 要判断两个时间之间有几个星期六星期天 麻烦

  7. 我的程序只计算了过去,当然如果能计算过去-现在及过去-将来更好。
    我详细说明一下:
    程序的作用是计算一个故障单的处理时长,如果时长超过预定的时长就给出警告。
    故障单有受理时间,派单时间,处理时间,根据不同的处理部门采用处理时间与受理时间或处理时间与派单时间来计算间隔。间隔以x小时x分x秒表示。
    上下班时间不固定,根据处理部门从数据库中取得。
    星期六星期天不算在间隔内。如果不确定的假期也能剔除更好
    预定的时长不固定,根据处理部门、故障单的性质从数据库中取得。

  8. 昨天、今天和明天

    我给你先发一个计算日期的例子你研究一下吧!!

    <?PHP
    $Date_1="2003-7-15";//也可以是Date_1="2003-6-25 23:29:14";
    $Date_2="1982-10-1";
    $Date_List_1=explode("-",$Date_1);
    $Date_List_2=explode("-",$Date_2);
    $d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
    $d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
    $Days=round(($d1-$d2)/3600/24);
    Echo "偶已经奋斗了 $Days 天^_^";
    ?>

  9. 倒,要求不少,等待高手吧,原来有计算间隔的程序,不过没有你要求的这么多而已。

  10. 返回顶部

    Re: 有没有计算两个时间的间隔的程序

    2003年12月02日 发表人 yuguanglou

    应该没有这么长吧
    等后面的高手帮忙吧

    哎呀 楼上怎么突然冒出个兄弟了
    还有就是你意思都没有完全表达清楚
    到底是要做什么 只是算现在——将来 过去——现在 还是 过去——将来???




  11. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

怎样获得访客是从哪个页面转来或上个访...

帮忙啊

男人拥有的四件,你有了吗?

女人

倒这里有没有回js的 啊

暗暗啊

绿眼在呢?

好久不见了,怪想你的..

怎么做?

如何设置APACHE,使某个目录不能被浏览?

求组!!!下载问题!

有A主机只提供WEB服务!! 有B主机只提供FTP服务!! 让C主机...

表单中的选择列表中的年月日如何在mysq...

表单中的年月日是使用了列表分别进行选择的。 先在年份的列表中...

== 反对mm穿吊带裙的理由==

首先声明,我绝对不是色狼,也不是在偷看你!   1、你明明...

问大家一个关于表单的问题

以前都是用dreamweaver来做网页,从来没有遇到过这个问题,这两次...

免费把你的网站登录到以下著名搜索引擎

W8C Search Engine Submit 搜索引擎登录 v1.0 免费把你的网...

[]