Foros del Web » Programando para Internet » PHP »

Como Sacar el Tiempo de Comienso a Fin

Estas en el tema de Como Sacar el Tiempo de Comienso a Fin en el foro de PHP en Foros del Web. Que tal amigos aqui estoy ya mas que agotado en buscar la solucion a mi problema ya tengo dias y no mas no e podido ...
  #1 (permalink)  
Antiguo 03/12/2008, 15:43
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Como Sacar el Tiempo de Comienso a Fin

Que tal amigos aqui estoy ya mas que agotado en buscar la solucion a mi problema ya tengo dias y no mas no e podido adquirir la respuesta correcta espero ustedes me puedan ayudar.

el problema es el siguiente.

estoy trabajando en una pagina donde meto el tiempo de inicio en un textarea y el tiempo final en otra textarea, hasta aqui todo bien puedo meter estos datos de textarea a my DB en forma "TIME' pero quiero tambien al mismo tiempo poder meter el lapso de tiempo que se uso por ejemplo si comensamos a las 6:00 y terminamos a las 8:15 el total de tiempo seria 2:15, pense que esto seria tan facil de solo restar el tiempo final con el de inicio pero no me funciona..

por la web me tope con este script pero me sale en blanco el resultado no se si lo este implementando bien.

aver si aguno de ustedes me pudiera decir cual sera el error o que es lo que tengo que hacer.

Código PHP:
<?php 

$start
date('Time_IN');
$enddate('Time_OUT');

function 
subTime($start$end$m$d$y)
{
        
$start strtotime("$m/$d/$y $start");
        
$end strtotime("$m/$d/$y $end");

        
$diff $end-$start;

        
$hours floor($diff/3600); // 60 seconds * 60 minutes
        
$diff -= $hours*3600;

        
$mins floor($diff/60); // 60 seconds
        
$diff -= $mins*60;

        
$secs $diff;

        echo 
$hours.':'.$mins.':'.$secs;



?>
  #2 (permalink)  
Antiguo 03/12/2008, 16:16
 
Fecha de Ingreso: enero-2008
Ubicación: La Plata
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Como Sacar el Tiempo de Comienso a Fin

Antes que nada , es comienzo y no comienso xD

En cuanto al script que nos facilitaste: en ningún momento se ejecuta la funcion subTime, que se define ahí.

Quedaría así:

Código PHP:
<?php 

$start
date('Time_IN');
$enddate('Time_OUT');

function 
subTime($start$end$m$d$y)
{
        
$start strtotime("$m/$d/$y $start");
        
$end strtotime("$m/$d/$y $end");

        
$diff $end-$start;

        
$hours floor($diff/3600); // 60 seconds * 60 minutes
        
$diff -= $hours*3600;

        
$mins floor($diff/60); // 60 seconds
        
$diff -= $mins*60;

        
$secs $diff;

        echo 
$hours.':'.$mins.':'.$secs;

//Ejecutamos la funcion
subTime($start,$end,date('n'),date('j'),date('y'));
?>
Espero que te funcione, suerte!
  #3 (permalink)  
Antiguo 03/12/2008, 23:18
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Como Sacar el Tiempo de Comienso a Fin

saludos manchilp y sorry por las faltas de ortografia ya estoy como la india maria ni de aqui ni de alla, ya que solo vivi 6 anios en mexico quede a medias con mis dos patrias us,mx..

mil gracias por tu ayuda mira casi casi quedo solo por dos cosillas las cuales no e logro arreglar.

una es que cuando hay minutos en :00 solo aparece un zero :0 digamos de 6:00 a 7:00 el resultado es 7:0

la otra es que solo puedo visualisar el resultado donde aparece la funcion
Código PHP:
echo $hours.':'.$mins.':'.$secs
y no e logrado meterlo a la base de datos de ningun modo es mas al poner fuera de la funcion no me muestra nada.
Código PHP:
<?php echo $hours.':'.$mins.':'.$secs;?>
aver si tienes algun tip que me ayude a solucionar esos problemillas.

mil gracias de nuevo por tu ayuda...
  #4 (permalink)  
Antiguo 03/12/2008, 23:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como Sacar el Tiempo de Comienso a Fin

hola... tmh4mail, has leído algún manual sobre programación general ???


bueno, para devolver el resultado en lugar de imprimirlo...

usa return, es una construcción simple que sirve para eso...

Código PHP:
function foo()
{
  return 
'bar';

ya debes saber, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/12/2008, 12:56
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Como Sacar el Tiempo de Comienso a Fin

e intentado como de todo y no logro nada..


pateketrueke asi seria correcto la forma de la funcion?

Código PHP:
<?php 

$start
date('Time_IN');
$enddate('Time_OUT');

function 
subTime($start$end$m$d$y)
{
        
$start strtotime("$m/$d/$y $start");
        
$end strtotime("$m/$d/$y $end");

        
$diff $end-$start;

        
$hours floor($diff/3600); // 60 seconds * 60 minutes
        
$diff -= $hours*3600;

        
$mins floor($diff/60); // 60 seconds
        
$diff -= $mins*60;

        
$secs $diff;

        
$Total_Time $hours.':'.$mins.':'.$secs;
        return 
$Total_Time;

//Ejecutamos la funcion
subTime($start,$end,date('n'),date('j'),date('y'));
?>
Gracias
  #6 (permalink)  
Antiguo 04/12/2008, 13:05
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Como Sacar el Tiempo de Comienso a Fin

tratando de buscar la solucion a mi problema encontre esta otra forma de sacar el tiempo y este si lo logro meter a la base de datos, la cosa que este lo mete pero en minutos...

alguien que pudiera ayudarme a cambiarlo para cambiarlo de minutos a horas...


Código PHP:
$st $_POST['Time_IN'];
$et $_POST['Time_OUT'];
$stex=explode(':',$st);     
$sthoursmin="$stex[0]"*60+"$stex[1]";
$etex=explode(':',$et);
$ethoursmin="$etex[0]"*60+"$etex[1]";
$min$ethoursmin-$sthoursmin;
echo 
"Minutes:$min<br>"

Gracias....
  #7 (permalink)  
Antiguo 04/12/2008, 14:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como Sacar el Tiempo de Comienso a Fin

sabes matemáticas ???

pues divide ... minutos/mins_por_hora

y ese es tu dato, lo redondeas ... bingo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 04/12/2008, 14:58
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Como Sacar el Tiempo de Comienso a Fin

Bingo asi me quedo y mete bien los datos nada mas una pregunta sobre el resultado de estos.

No1. 6:00 a 10:45 el resultado me da 4.75
No2. 10:45 a 14:00 el resultado me da 3.25

el resultado en total seria al fin de cuentas 8.00 horas trabajadas lo cual es lo que busco pero no habra mode de que muestre en tiempo real de TIME digamos.

No1. reslutado que sea 4.45
No2. resultado que sea 3.15


Código PHP:
$st $_POST['Time_IN'];
$et $_POST['Time_OUT'];
$stex=explode(':',$st);     
$sthoursmin="$stex[0]"*60+"$stex[1]";
$etex=explode(':',$et);
$ethoursmin="$etex[0]"*60+"$etex[1]";
$min=$ethoursmin-$sthoursmin;
$Total_Hours=$min/60
Mil Gracias...
  #9 (permalink)  
Antiguo 04/12/2008, 16:00
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Como Sacar el Tiempo de Comienso a Fin

ya me dieron ayuda en otra parte y aqui pongo el codigo para meter el tiempo real esto puede servir para los principiantes como yo..

Código PHP:
$startTime $_POST['Time_IN'];
$endTime $_POST['Time_OUT'];
list(
$startHour$startMinute) = explode(":"$startTime); 
list(
$endHour$endMinute) = explode(":"$endTime); 

$minutes = (($endHour $startHour)*60) + ($endMinute $startMinute); 
$hours 0;
if ( 
$minutes >= 60 ) {
    
$hours floor($minutes 60);
    
$minutes $minutes 60;
}

$Total_Hours "$hours:$minutes"
de nuevo mil gracias por su ayuda las dos formas presentadas estan bien.

Saludos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:28.