se me hizo un problema cuando estaba programando un control de asistencia en PHP, y las funciones basicas del PHP no podian restar dos horas, por ejemplo 10:30 - 12:30, siempre salia un numero diferente al que yo queria restar, busque ayuda en todos los foros que me mostraba Google y nada, hasta que por fin di con una que casi lo resuelve su problema era que restaba solo horas positivas es decir 10:30 - 10:25, pero para la asistencia el personal podia salir antes de su hora de salida entonces se producia un error, por lo tanto no sirve. la solucion que le di fue:
function diferencia($h1,$h2){
if(strtotime($h1)>strtotime($h2)){
$signo="";
}
elseif(strtotime($h1)==strtotime($h2)){
$signo="";
}
else{
$h3=$h2;
$h2=$h1;
$h1=$h3;
$signo="-";
}
$horaac=strtotime($h1)-strtotime($h2)+18000;
return $signo.date("H:i:s",$horaac);
}
echo dif2("10:00:10","10:35:15");
te devuelve tanto la hora si es negativa como tambien si la hora es positiva.
miércoles, 26 de agosto de 2009
Suscribirse a:
Enviar comentarios (Atom)
no funciona correctamente amigo, checa mete la cantidad asi para que veas que no funciona
ResponderEliminarfunction diferencia("00:30:00", "00:15:00");
Se supone que se espera como resultado "00:15:00" pero en cambio se recibe "23:15:00" checalo y veras