Jump to content


Photo

Subtrair Hora.


  • Faça o login para participar
9 replies to this topic

#1 Adson Aquino

Adson Aquino

    Normal

  • Usuários
  • 83 posts
  • Sexo:Masculino

Posted 13/10/2009, 16:31

Olá pessoal, estou precisando de uma ajuda de vocês....

Tenho um sistema de ponto eletrônico e queria fazer o seguinte, na tabela de funcionários tem um cmapo hora_chegada, onde armazeno a hora que o funcionário deve chegar na empresa, quero que quando ele bata o ponto o sistema verificar a hora que ta definida no banco para esse usuário e ver a hora atual e fazer o seguinte, exemplo.

Se no banco ta definido para o usuário chegar de 8:00 e ele chegou de 8:20 vai aparcer a mensagem (Você está 20 minutos atrasado) como posso fazer isso, valeu aguardo uma ajuda.
Nome: Adson Aquino

E-mail: adsonaquino@gmail.com

MSN: adson_aquino@brisanet.com.br

#2 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 13/10/2009, 16:49

Boa tarde amigo.

Você arquiva este campo em que formato?
Um time?

Outra coisa.
Se ele faltar um dia e no outro chegar atrasado deve mostrar "você está 20 minutos atrasado" ou "você está 24 horas e 20 minutos atrasado".

Uma conta simples já deve te resolver....
Você pega a hora corrente com o date() e faz uma subtração com a hora do banco!
Ai boa...

Entendeu?
Qualquer coisa volta ai.

Abraços.
Mateus
Mateus Antunes
MBASistemas

#3 Adson Aquino

Adson Aquino

    Normal

  • Usuários
  • 83 posts
  • Sexo:Masculino

Posted 13/10/2009, 16:54

O campo está datatime, então quero que pegue mesmo só da data atual entendeu, se ele faltar o sistema já marca falta, o que importa é a data atual.
Nome: Adson Aquino

E-mail: adsonaquino@gmail.com

MSN: adson_aquino@brisanet.com.br

#4 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 14/10/2009, 08:28

Se você fizer a conta pela SELECT eu acho que o MySQL trata como inteiro.
Então deve funcionar =D
Não tenho certeza mais pode testar ai....

Para buscar a hoje atual você pode usar o NOW().
Depois você pode usar o TIMEDIFF para fazer a conta e o resultado você exibe com DATE_FORMAT

Se não tiver entendido alguma parte, volte a postar aqui no fórum.

Abraços.
Mateus
Mateus Antunes
MBASistemas

#5 Adson Aquino

Adson Aquino

    Normal

  • Usuários
  • 83 posts
  • Sexo:Masculino

Posted 14/10/2009, 12:05

Bom amigos eu coloquei da seguinte maneira.

$hora_sql = mysql_query('select hora_chegada from employees where empfullname="$empfullname"');
				$hora_chegada = $hora_sql[0]['hora_chegada'];
				
				$hora_atual = date('G:i:s');

				if($hora_atual > $hora_chegada){
				$atraso = $hora_atual - $hora_chegada;
				echo "você está á ".$atraso." atrasado ";  
				}


Mais a no lugar de mim retornar o atraso retorna a hora atual, onde pode está o erro?

Lembrando que o campo é do tipo time.

Fiz mais algumas alterações e ficou assim.

$hora = date('G:i:s');
				
				$sql = "select hora_chegada from employees where empfullname='Adson' ";
				$query=mysql_query($sql);
				
				$result_query=mysql_fetch_array($query);
				
				$h1= $hora;
				$h2= $result_query["hora_chegada"];
				
				$result2= (strtotime($h1)- strtotime($h2))-3600;
				
				echo  date("H:i:s", $result2);


Só que está mim retornando o valor errado, onde está o erro de calculo? Posta aí se alguém souber como resolver isso.
Nome: Adson Aquino

E-mail: adsonaquino@gmail.com

MSN: adson_aquino@brisanet.com.br

#6 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 15/10/2009, 10:32

Amigo.
Tenta isso:
[codebox]select timediff('10:00:00',date_format(now(), "%H:%i:%s"));[/codebox]

Agora no meu relógio são 10:30.
Resultado

[codebox]

+-----------------------------------------------------+
| timediff('10:00:00',date_format(now(), "%H:%i:%s")) |
+-----------------------------------------------------+
| -00:30:32 |
+-----------------------------------------------------+

[/codebox]

Lancei o 10:00:00 duro como se meu horário fosse 10:00:00 mas você pode usar o campo da sua tabela.
Testa ai e me avisa depois o que aconteceu.

Abraços e até a próxima.

Mateus
Mateus Antunes
MBASistemas

#7 Adson Aquino

Adson Aquino

    Normal

  • Usuários
  • 83 posts
  • Sexo:Masculino

Posted 16/10/2009, 08:01

MBA eu tinha resolvido já, mais valeu pela força, veja como ficou.

$sql = "select hora_chegada from employees where empfullname='Adson' ";
				$query=mysql_query($sql);
				
				$result_query=mysql_fetch_array($query);
				
				$h1= $result_query["hora_chegada"];
				
function calcular_tempo_trasnc($hora1,$hora2){
	$separar[1]=explode(':',$hora1);

$total_minutos_trasncorridos[1] = ($separar[1][0]*60)+$separar[1][1];
$total_minutos_trasncorridos[2] = ($separar[2][0]*60)+$separar[2][1];
$total_minutos_trasncorridos = $total_minutos_trasncorridos[1]-$total_minutos_trasncorridos[2];
if($total_minutos_trasncorridos<=59) return($total_minutos_trasncorridos.' Minutos');
elseif($total_minutos_trasncorridos>59){
$HORA_TRANSCORRIDA = round($total_minutos_trasncorridos/60);
if($HORA_TRANSCORRIDA<=9) $HORA_TRANSCORRIDA='0'.$HORA_TRANSCORRIDA;
$MINUTOS_TRANSCORRIDOS = $total_minutos_trasncorridos%60;
if($MINUTOS_TRANSCORRIDOS<=9) $MINUTOS_TRANSCORRIDOS='0'.$MINUTOS_TRANSCORRIDOS;
return ($HORA_TRANSCORRIDA.':'.$MINUTOS_TRANSCORRIDOS.' Horas');

} }
//chamamos a função e imprimimos
echo = calcular_tempo_trasnc(date('H:i:s'),"$h1");

Edição feita por: Adson Aquino, 16/10/2009, 08:02.

Nome: Adson Aquino

E-mail: adsonaquino@gmail.com

MSN: adson_aquino@brisanet.com.br

#8 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 21/11/2017, 09:21

Antibiotics Double Vision Keflex generic viagra Generique Tadalafil 20mg
Compro Viagra In Italia Dutasteride Website No Physician Approval Private Prescription For Ciprofoxacin viagra Levitra 20 Mg Vademecum Buy Brand Levitra Levitra Pas Chere

#9 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 21/11/2017, 14:46

Keflex And Vaginitis viagra Levitra Due Volte Al Giorno Zithromax For Dogs
Medicamento Cialis 20 Mg online pharmacy Acheter Cialis Au Canada Furosemide Mexico Purchasing Viagra Online From Canada
Cialis Lagerung cheap cialis Gunstig Cialis Propecia Y Cialis Buy Viagra With Paypal Account
Cialis Achat En France Viagra 50 Mg Quick Dissolve buy viagra levitra Cialis Medikamente Kaufen
Real 1 To 3 Days Delivery Time For Viagra viagra prescription Keflex Dose
Acheter Viagra Generique Ligne Avis Cialis 10 Buy Generic Viagra Online Pharmacy online pharmacy Amoxicillin 33436 Keflex No Rx
Direct Amoxicilina Get In Internet Without Perscription Kamagra Cuanto Cuesta viagra Clomid Probabilite Kamagra Gel France

#10 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 22/11/2017, 11:49

Amoxicillin Blood Pressure Dangers Soft Chew Viagra Canadian Online Sales Zithromax Loading Dose cialis online Liver Damage Propecia
Wherecan I Get Dompetidone Without Rx Cialis Controindicazioni levitra for sale Viagra Versand Nl Elocon With Free Shipping
Viagra Pastiglie Morbide levitra online buying europe Generic Priligy Online Doctissimo Kamagra En Ligne Canine Cephalexin Dosage
Cialis Efectos Salud Prix Du Cytotec Au Maroc Acquistare Viagra In Contrassegno cialis Amoxicillin Cap 500mg Buy Neurontin Overnight
Priligy Au Priligy Pt sale isotretinoin roacutan website cheapeast cialis Propecia Varato Cialis Falschungen
Cod Generic Levaquin Drugs Direct Mastercard Accepted Store Spain Buy Propecia Coumadin For Sale generic viagra Keflex Pediatric Dosing
Amoxicillin Creatinine Clearance Cialis Sin Disfuncion Erectil Healthymen viagra Kamagra Prescrizione France Non Prescription Online Pharmaceuticals Achat Propecia Generique France
Comprar Cialis Almeria Generic Cash On Delivery Doryx Best Website Online Store Comment Prendre Clomid levitra plus Acheter Xenical En Ligne Pas Cher Cialis Drogue
Generico Do Viagra Da Sandoz Amoxicillin Trihydrate 8.99 levitra sample online pharmacy Buy Ketotifen Pills Online
Antibiotics Flagyl Viagra Abnehmen Generic Acticin With Free Shipping Overseas cialis Buy Tadacip 20 Mg
Como Comprar Cytotec Sin Receta Medica Tadacip Buy Online viagra cialis Levitra Generique En Parapharmacie
Leukemia By Antibiotic Amoxicillin Viagra Kaufen Privat viagra How Long Before Zithromax Works
Cialis Diario Generico viagra Zithromax Skin Abscess Universal De Propecia
Cheap Celebrex 200mg Misoprostol Cytotec Side Effects Comprar Cialis Ou Viagra viagra Propecia Sperm Analysis Osu Viagra Precio Farmacia




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq