【问题标题】:How to find at what time activity finished?如何找到活动结束的时间?
【发布时间】:2014-06-19 07:55:35
【问题描述】:

我有活动开始时间和总小时数,我只想找到该活动的结束时间,即活动结束的时间?

例如我开始我的活动 对于

   $hour =  24:60:08        // 24 hour 60 min 8 min total hour 
   $starttime  =  13:09     // using 24 hour format it 01:09              
                            //means activity start at =          13:09

    $endtime  = ?

我想知道某项活动的完成时间

谢谢

【问题讨论】:

  • 您应该如何根据给定的信息找到结束时间?我不确定我是否理解您的问题。
  • 您可以使用日期时差.. php.net/manual/en/datetime.diff.php 但请记住正确格式化您的时间.. 24:00+ 我记得不接受
  • 因为我有用户开始该活动的开始时间和总运行活动小时数,所以我们可以找到例如我在 10:00 开始一项活动并且运行活动时间 = 2 小时以便结束时间将是 12:00 点
  • 所以,结束时间,你真的是指持续时间,对吗?
  • 您必须使用时间戳开始事件时间加上添加时间以完成活动,然后找到expexted complition time

标签: php date time timestamp


【解决方案1】:

您可以像下面这样添加时间爆炸小时:

$hour      =  '24:60:08';
$starttime =  '13:09';        

$times     = explode(':', $hour);
$timestamp = strtotime($starttime) + ($times[0] * 3600 + $times[1] * 60 + $times[2]);

$endtime   = date('H:i', $timestamp);

echo $endtime; // 14:09

说明:

24 = 24(hours) * 60(mins) * 60(secs)
60 = 60(mins) * 60(secs)
08 = 8(sec)

【讨论】:

  • 只是一个简单的提示,没有 60 分钟这样的东西。 24:60:08 看起来像 25:00:08 更好:)
【解决方案2】:

您似乎有一个活动的开始时间,然后是它运行的持续时间,并且您想计算结束时间。由于您使用非描述性变量名称或任何 cmets,您的问题变得不清楚。你可以这样做

<?php
     $duration   =  "25:00:08";
     $starttime  =  "13:09";
     list($hours,$minutes,$seconds) = explode(":",$duration);
     $totalTime = $seconds+($minutes*60)+($hours*3600);
     $endTime = date("h:i",strtotime($starttime)+$totalTime);
     echo $endTime;
?>

旁注:24:60:0860 分钟 不算什么。那是 25 小时 0 分 8 秒

【讨论】:

  • 我如何转换这个 $starttime = "13:09";前 12 小时格式:01:09
  • 应该很容易使用strtotime。或者你可以从小时部分爆炸并减去 12 :)
【解决方案3】:

如果你想得到处理某事的时间,比如执行一个函数,你可以用 PHP microtime 轻松完成。

假设你想找到执行功能测试的时间,这里你是怎么做的。

public function test()
{
$time_start = microtime(true);
/* 
  Your code 
    goes here
*/
$time_end = microtime(true);
$execution_time = (($time_end - $time_start) / 60) * 60;

echo $execution_time; //This will show you the execution time in seconds.    

}

如果需要,您可以将此秒数添加到您之前保存的任何时间戳中,以获取 hh:mm:ss 格式的执行终止时间。希望这会有所帮助。

干杯!

【讨论】:

  • 我没有结束时间,即使我想找到结束时间
  • 要获得结束时间,只需将执行时间添加到您之前的时间戳。那会给你你想要的。干杯!
【解决方案4】:

我无法准确理解您在寻找什么

<?php
$hour = "24:60:08";        // 24 hour 60 min 8 min total hour 
$starttime  = "13:09";
$hourArray=explode(":", $hour);
$starttimeArray=explode(":", $starttime);
$endtimearray=array();
for ($i=0;$i<3;$i++){
    //Verifyng time is set else making it zero
    if (!isset($hourArray[$i]))
    $hourArray[$i]=0;
    if (!isset($starttimeArray[$i]))
    $starttimeArray[$i]=0;

    $endtimearray[$i]=$hourArray[$i]-$starttimeArray[$i];   
}
echo $endtimearray[0];
for ($i=1;$i<3;$i++)
echo ":$endtimearray[$i]";

希望这是您正在寻找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 2019-11-12
    相关资源
    最近更新 更多