用php计算时间

用php计算时间,php,time,Php,Time,我想用php计算时间,但经过数小时的谷歌搜索和试用,我仍然找不到解决方案 我的价值观是: $newTotal = '00:45:00'; $oldTotal = '00:16:00'; 我想把这两个加起来,构成01:01:00 你能给我举个例子吗?我真的很绝望p 提前感谢,如果这些值总是这样,您可以使用substr()将其分解 等等,然后简单地把秒数加起来,做一个除法,修改并冒泡到小时数,瞧 $secondstotal = $seconds1+$seconds2; $restseconds

我想用php计算时间,但经过数小时的谷歌搜索和试用,我仍然找不到解决方案

我的价值观是:

$newTotal = '00:45:00';
$oldTotal = '00:16:00';
我想把这两个加起来,构成01:01:00

你能给我举个例子吗?我真的很绝望p


提前感谢,

如果这些值总是这样,您可以使用substr()将其分解

等等,然后简单地把秒数加起来,做一个除法,修改并冒泡到小时数,瞧

$secondstotal = $seconds1+$seconds2; 
$restseconds = $secondstotal % 60;
$minutesfromseconds = floor($restseconds / 60);

$minutestotal = $minutes1+$minutes2+$minutesfromseconds;

等等。

如果这些值总是这样,可以使用substr()将其分解

等等,然后简单地把秒数加起来,做一个除法,修改并冒泡到小时数,瞧

$secondstotal = $seconds1+$seconds2; 
$restseconds = $secondstotal % 60;
$minutesfromseconds = floor($restseconds / 60);

$minutestotal = $minutes1+$minutes2+$minutesfromseconds;
等等。

用于将它们转换为Unix时间戳,然后将它们添加为整数:

$newTotal = '00:45:00';
$oldTotal = '00:16:00';

$total = strtotime($newTotal) + strtotime($oldTotal);
要再次将其格式化为
hh:mm:ss
,请使用
date()

这使得:

01:01:00

用于将它们转换为Unix时间戳,然后将它们添加为整数:

$newTotal = '00:45:00';
$oldTotal = '00:16:00';

$total = strtotime($newTotal) + strtotime($oldTotal);
要再次将其格式化为
hh:mm:ss
,请使用
date()

这使得:

01:01:00


为最小的错误保留开始日期

<?php
$origin   = '00:00:00';
$newTotal = '00:45:00';
$oldTotal = '00:16:00';

$added = strtotime($newTotal) + (strtotime($oldTotal) - strtotime($origin));

echo date('H:i:s', $added );

注意,如果添加后您的时间超过23:59:59,您将得到错误的结果。

保留一个开始日期以减少错误

<?php
$origin   = '00:00:00';
$newTotal = '00:45:00';
$oldTotal = '00:16:00';

$added = strtotime($newTotal) + (strtotime($oldTotal) - strtotime($origin));

echo date('H:i:s', $added );

注意,如果添加后您的时间超过23:59:59,您将得到错误的结果。

另一个没有时间函数的解决方案:

函数总和($a,$b){
$i=爆炸(“:”,$a);
$j=爆炸(“:”,$b);//0hh:1mm:2ss
$k=数组(0,0,0,0);//0天:1小时:2分钟:3秒
$k[3]=$i[2]+$j[2];
$k[2]=(int)($k[3]/60)+$i[1]+$j[1];
$k[1]=(int)($k[2]/60)+$i[0]+$j[0];
$k[0]=(整数)($k[1]/24);
$k[3]=60;
$k[2]=60;
$k[1]=24;

如果($k[3]没有时间函数的另一个解决方案:

函数总和($a,$b){
$i=爆炸(“:”,$a);
$j=爆炸(“:”,$b);//0hh:1mm:2ss
$k=数组(0,0,0,0);//0天:1小时:2分钟:3秒
$k[3]=$i[2]+$j[2];
$k[2]=(int)($k[3]/60)+$i[1]+$j[1];
$k[1]=(int)($k[2]/60)+$i[0]+$j[0];
$k[0]=(整数)($k[1]/24);
$k[3]=60;
$k[2]=60;
$k[1]=24;

如果($k[3]@Tufan是的,我试过了。你自己试过了吗?对我来说很好。@user1502363你是用OP中发布的字符串试过了还是用其他字符串试过了?我在这里发布之前测试了我的代码,它给出了正确的时间。我完全按照你发布的时间复制了它!谢谢你的帮助!@Tufan是的,我试过了。你自己试过吗?对我来说很好。@user1502363您是使用OP中发布的字符串还是其他字符串进行了尝试?在这里发布之前,我测试了我的代码,它给出了正确的时间。我完全按照您发布的时间复制了它!感谢您的帮助!是否也可以将日期添加到它?因此,当它过去24小时时,它会添加一天?是否也可以将日期添加到它?因此,当它过去时24小时加一天?