Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果小时大于24小时,两个时间戳之间的差异_Php_Date_Timestamp_Strtotime_Mktime - Fatal编程技术网

Php 如果小时大于24小时,两个时间戳之间的差异

Php 如果小时大于24小时,两个时间戳之间的差异,php,date,timestamp,strtotime,mktime,Php,Date,Timestamp,Strtotime,Mktime,我只是编辑我的问题 我有两种时间格式,我想知道它们之间的区别 比如说 $time1 = new DateTime('09:00:59'); $time2 = new DateTime('100:30:00'); $interval = $time1->diff($time2); echo $interval->format('%h:%i:%s second(s)'); ?> 如果我增加时间,它在24小时以下工作正常,显示出致命错误2 $time2=新日期时间

我只是编辑我的问题 我有两种时间格式,我想知道它们之间的区别

比如说
 $time1 = new DateTime('09:00:59');
 $time2 = new DateTime('100:30:00');
 $interval = $time1->diff($time2);
   echo $interval->format('%h:%i:%s second(s)'); 
  ?>
如果我增加时间,它在24小时以下工作正常,显示出致命错误2

$time2=新日期时间('100:30:00')

致命错误:未捕获异常“exception”,消息为“DateTime::uu构造()[DateTime.-construct]:未能分析位置0(1)处的时间字符串(100:30:00):D:\xampp\htdocs\DateTime中的意外字符。php:3堆栈跟踪:35; 0 D:\xampp\htdocs\DateTime.php(3):DateTime->u构造('100:30:00')#1{main}在第3行的D:\xampp\htdocs\datetime.php中抛出

有没有其他方法,或者我可以编辑相同的我已经尝试了很多,但没有找到解决方案 我只想用任何方法得到差异 谢谢

我希望这会有所帮助

$time1 = '10:30:00';
$time2 = '100:00:00';


function hms2sec ($hms) {
    list($h, $m, $s) = explode (":", $hms);
    $seconds = 0;
    $seconds += (intval($h) * 3600);
    $seconds += (intval($m) * 60);
    $seconds += (intval($s));
    return $seconds;
}
$ts1=hms2sec($time2);
$ts2=hms2sec($time1);
$time_diff = $ts1-$ts2;

function seconds($seconds) {

        // CONVERT TO HH:MM:SS
        $hours = floor($seconds/3600);
        $remainder_1 = ($seconds % 3600);
        $minutes = floor($remainder_1 / 60);
        $seconds = ($remainder_1 % 60);

        // PREP THE VALUES
        if(strlen($hours) == 1) {
            $hours = "0".$hours;
        }

        if(strlen($minutes) == 1) {
            $minutes = "0".$minutes;
        }

        if(strlen($seconds) == 1) {
            $seconds = "0".$seconds;
        }

        return $hours.":".$minutes.":".$seconds;

        }
echo $final_diff=seconds($time_diff);
我希望这能有所帮助

$time1 = '10:30:00';
$time2 = '100:00:00';


function hms2sec ($hms) {
    list($h, $m, $s) = explode (":", $hms);
    $seconds = 0;
    $seconds += (intval($h) * 3600);
    $seconds += (intval($m) * 60);
    $seconds += (intval($s));
    return $seconds;
}
$ts1=hms2sec($time2);
$ts2=hms2sec($time1);
$time_diff = $ts1-$ts2;

function seconds($seconds) {

        // CONVERT TO HH:MM:SS
        $hours = floor($seconds/3600);
        $remainder_1 = ($seconds % 3600);
        $minutes = floor($remainder_1 / 60);
        $seconds = ($remainder_1 % 60);

        // PREP THE VALUES
        if(strlen($hours) == 1) {
            $hours = "0".$hours;
        }

        if(strlen($minutes) == 1) {
            $minutes = "0".$minutes;
        }

        if(strlen($seconds) == 1) {
            $seconds = "0".$seconds;
        }

        return $hours.":".$minutes.":".$seconds;

        }
echo $final_diff=seconds($time_diff);
我希望这能有所帮助

$time1 = '10:30:00';
$time2 = '100:00:00';


function hms2sec ($hms) {
    list($h, $m, $s) = explode (":", $hms);
    $seconds = 0;
    $seconds += (intval($h) * 3600);
    $seconds += (intval($m) * 60);
    $seconds += (intval($s));
    return $seconds;
}
$ts1=hms2sec($time2);
$ts2=hms2sec($time1);
$time_diff = $ts1-$ts2;

function seconds($seconds) {

        // CONVERT TO HH:MM:SS
        $hours = floor($seconds/3600);
        $remainder_1 = ($seconds % 3600);
        $minutes = floor($remainder_1 / 60);
        $seconds = ($remainder_1 % 60);

        // PREP THE VALUES
        if(strlen($hours) == 1) {
            $hours = "0".$hours;
        }

        if(strlen($minutes) == 1) {
            $minutes = "0".$minutes;
        }

        if(strlen($seconds) == 1) {
            $seconds = "0".$seconds;
        }

        return $hours.":".$minutes.":".$seconds;

        }
echo $final_diff=seconds($time_diff);
我希望这能有所帮助

$time1 = '10:30:00';
$time2 = '100:00:00';


function hms2sec ($hms) {
    list($h, $m, $s) = explode (":", $hms);
    $seconds = 0;
    $seconds += (intval($h) * 3600);
    $seconds += (intval($m) * 60);
    $seconds += (intval($s));
    return $seconds;
}
$ts1=hms2sec($time2);
$ts2=hms2sec($time1);
$time_diff = $ts1-$ts2;

function seconds($seconds) {

        // CONVERT TO HH:MM:SS
        $hours = floor($seconds/3600);
        $remainder_1 = ($seconds % 3600);
        $minutes = floor($remainder_1 / 60);
        $seconds = ($remainder_1 % 60);

        // PREP THE VALUES
        if(strlen($hours) == 1) {
            $hours = "0".$hours;
        }

        if(strlen($minutes) == 1) {
            $minutes = "0".$minutes;
        }

        if(strlen($seconds) == 1) {
            $seconds = "0".$seconds;
        }

        return $hours.":".$minutes.":".$seconds;

        }
echo $final_diff=seconds($time_diff);
一种方法是:

$time2='100:00:00';
$time1='10:30:00';
列表($hours,$minutes,$seconds)=爆炸(“:”,$time2);
$interval2=$hours*3600+$minutes*60+$seconds;
列表($hours,$minutes,$seconds)=爆炸(“:”,$time1);
$interval1=$hours*3600+$minutes*60+$seconds;
$diff=$interval2-$interval1;
回声地板($diff/3600)。“:”。
stru垫(地板($diff/60)%60,2,'0'):'。
str_pad($diff%60,2,'0');
输出:

89:30:00 89:30:00 下面是一个演示方法:

$time2='100:00:00';
$time1='10:30:00';
列表($hours,$minutes,$seconds)=爆炸(“:”,$time2);
$interval2=$hours*3600+$minutes*60+$seconds;
列表($hours,$minutes,$seconds)=爆炸(“:”,$time1);
$interval1=$hours*3600+$minutes*60+$seconds;
$diff=$interval2-$interval1;
回声地板($diff/3600)。“:”。
stru垫(地板($diff/60)%60,2,'0'):'。
str_pad($diff%60,2,'0');
输出:

89:30:00 89:30:00 下面是一个演示方法:

$time2='100:00:00';
$time1='10:30:00';
列表($hours,$minutes,$seconds)=爆炸(“:”,$time2);
$interval2=$hours*3600+$minutes*60+$seconds;
列表($hours,$minutes,$seconds)=爆炸(“:”,$time1);
$interval1=$hours*3600+$minutes*60+$seconds;
$diff=$interval2-$interval1;
回声地板($diff/3600)。“:”。
stru垫(地板($diff/60)%60,2,'0'):'。
str_pad($diff%60,2,'0');
输出:

89:30:00 89:30:00 下面是一个演示方法:

$time2='100:00:00';
$time1='10:30:00';
列表($hours,$minutes,$seconds)=爆炸(“:”,$time2);
$interval2=$hours*3600+$minutes*60+$seconds;
列表($hours,$minutes,$seconds)=爆炸(“:”,$time1);
$interval1=$hours*3600+$minutes*60+$seconds;
$diff=$interval2-$interval1;
回声地板($diff/3600)。“:”。
stru垫(地板($diff/60)%60,2,'0'):'。
str_pad($diff%60,2,'0');
输出:

89:30:00 89:30:00 这是一个演示,因为我没有足够的“声誉”在所选答案中添加评论。我想添加一条消息,指出它的一个缺陷

如果您尝试使用以下参数:

$time2 = '10:15:00';
$time1 = '10:10:00';
您将得到以下错误结果: 0:50:00

要更正此问题,您需要在处理分钟的STR_PAD_中添加STR_PAD_,如下所示:

str_pad(floor($diff / 60) % 60, 2, '0', STR_PAD_LEFT) . ':' .
因为我没有足够的“声誉”在所选答案中添加评论。我想添加一条消息,指出它的一个缺陷

如果您尝试使用以下参数:

$time2 = '10:15:00';
$time1 = '10:10:00';
您将得到以下错误结果: 0:50:00

要更正此问题,您需要在处理分钟的STR_PAD_中添加STR_PAD_,如下所示:

str_pad(floor($diff / 60) % 60, 2, '0', STR_PAD_LEFT) . ':' .
因为我没有足够的“声誉”在所选答案中添加评论。我想添加一条消息,指出它的一个缺陷

如果您尝试使用以下参数:

$time2 = '10:15:00';
$time1 = '10:10:00';
您将得到以下错误结果: 0:50:00

要更正此问题,您需要在处理分钟的STR_PAD_中添加STR_PAD_,如下所示:

str_pad(floor($diff / 60) % 60, 2, '0', STR_PAD_LEFT) . ':' .
因为我没有足够的“声誉”在所选答案中添加评论。我想添加一条消息,指出它的一个缺陷

如果您尝试使用以下参数:

$time2 = '10:15:00';
$time1 = '10:10:00';
您将得到以下错误结果: 0:50:00

要更正此问题,您需要在处理分钟的STR_PAD_中添加STR_PAD_,如下所示:

str_pad(floor($diff / 60) % 60, 2, '0', STR_PAD_LEFT) . ':' .

你能发布你的相关代码吗您已经标记了strtotime,但这是时间戳,所以24是上限,因为这是午夜12点,所以您需要包括天?您必须包括日期,只要使用完整的时间戳,就可以从时间戳中减去时间戳,而无需进行任何转换,这样php就可以根据UNIX epoc 1/1/1970确定数值。检查是否可以发布相关代码?-您已经标记了strtotime,但这是时间戳,所以24是上限,因为这是午夜12点,所以您需要包括天?您必须包括日期,只要使用完整的时间戳,就可以从时间戳中减去时间戳,而无需进行任何转换,这样php就可以根据UNIX epoc 1/1/1970确定数值。检查是否可以发布相关代码?-您已经标记了strtotime,但这是时间戳,所以24是上限,因为这是午夜12点,所以您需要包括天?您必须包括日期,只要使用完整的时间戳,就可以从时间戳中减去时间戳,而无需进行任何转换,这样php就可以根据UNIX epoc 1/1/1970确定数值。检查是否可以发布相关代码?-您已经标记了strtotime,但这是时间戳,所以24是上限,因为这是午夜12点,所以您需要包括天?您必须包括日期,只要使用完整的时间戳,就可以从时间戳中减去时间戳而不进行任何转换,这样php就可以根据UNIX epoc 1/1/1970.C确定数值