
Restar hora y fecha
Publicado por andres (63 intervenciones) el 19/03/2014 16:16:52
Hola a todos quisiera saber que funcion o como puedo yo restar 2 horas y 2 fechas en php y que me arroje el resultado gracias
Valora esta pregunta


0
function resta_fechas($fecha1,$fecha2, $absoluto = true){
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
list($año1,$mes1,$dia1)=explode("/",$fecha1);
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
//list($año1,$mes1,$dia1)=split("-",$fecha1);
$Res1 = explode("-",$fecha1); // 0 = Año ; 1 = Mes ; 2 = Dia
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
//list($año2,$mes2,$dia2)=explode("/",$fecha2);
$Res2 = explode("-",$fecha2); // 0 = Año ; 1 = Mes ; 2 = Dia
if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
//list($año2,$mes2,$dia2)=explode("-",$fecha2);
$Res3 = explode("-",$fecha2); // 0 = Año ; 1 = Mes ; 2 = Dia
$dif = mktime(0,0,0,$Res1[1],$Res1[2],$Res1[0]) - mktime(0,0,0,$Res3[1],$Res3[2],$Res3[0]);
$dif = $dif / (60*60*24);
$dif = ($absoluto)?abs($dif):$dif;
$ndias=floor($dif);
return($ndias);
}
// Asi es como se implementa
echo resta_fechas(date('Y-m-d'),'2014-03-10', $absoluto = true);
function SumarHoras($HorayMin , $Add_hora = false , $Add_mint = false )
{
// SUMAR HORAS Y MINUTOS A LA HORA
// $Hora = "08:30";
// supongamos que esta es la hora de inicio a la cual sumaremos el tiempo deseado
// bien ahora vamos a partir la cadena para poder sumarle el tiempo ya sea para los
// hora o para los minutos
$Hrs = explode(':', $HorayMin);
//usamos la funcion mktime para convertir nuestro tiempo a fecha y poder darle un formato deseado
// Con la siguiente sentencia sumaria
//$hora2 = date("H:i", mktime($Hrs[0]+$Add_hora, $Hrs[1]+$Add_mint, 0));
// Con la sisguiente sentencia restaria
$hora2 = date("H:i", mktime($Hrs[0]+$Add_hora, $Hrs[1]-$Add_mint, 0));
//Vamos a imprimir la variable para ver que nos arroja
return $hora2;
//bien espero no fallar en este script y que les sirva de algo
}
// Salida: Le sumo 10 minutos a la hora actual
// con cambiar los calores en los parametros consigues sumar o restar horas o minutos
echo SumarHoras(date('H:i') , false , 10);