sou bem iniciante em php, porém estou fazendo um scrip que faz o segunte:
Tendo os dados, hora de registro, hora atual, data registro e data atual, prazo de entrega e notificação. Eu estava tentando fazer um scrip que pegaga as horas do registro e soma com o prazo de entrega, ai quando as horas atuais fosse igual ao prazo de entrega menos o tempo de notificação é mandando um e-mail para alguém avisando que falta XX minutos para o prazo vencer.
To levando em conta tambem dias e horas uteis da semana, tendo como base seg a quinta das 8:00 as 18:00 e sextas das 8:00 as 17:00.
Bom meu problema está mesmo na comparação de horas, já programo um pouco em java, mas php sou iniciante mesmo. Olhem o codigo da para entender melhor
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php
$dia = date("D"); // pegando a data em formato extenso
switch($dia) {
case "Fri"; // sexta-feira
$dia = "Sexta-Feira";
case "Sat"; //Sabado
$dia = "Sabado";
case "Sun"; //domingo
$dia = "Domingo";
case "mon"; // segunda-feira
$dia = "Segunda-Feria";
case "Tue"; //Terça-Feira
$dia = "Terça-Feria";
case "Wed"; //quarta-feira
$dia = "Quarta-Feira";
case "Thu"; //quinta-feira
$dia = "Quinta-Feira";
}
?>
<?php
$dtCham = date ("$dia/$mes/$ano");//data recebida no formato dd/mm/aaaa
$hrCham = date ("$hr:$min");
$dtAtual = date ("j/m/y");
$hrAtual = date ("H:i");
$notif = "";//valor em minutos
$prazo = date ("$PH:$PM");;//prazo recebido no formato hr:min
$email = "";
//tranformando hora chamada em minutos
function emMin1($hrCham)
{
$novaHr = $hrCham;
if(strpos($hrCham,":"))
{
$dados = explode(":",$hrCham);
$novaHr = $hrCham[0]*60;
$novaHr += $hrCham[1];
}
return $novaHr;
}
//trnasformando prazo em minutos
function emMin2($prazo)
{
$novoPrzo = $prazo;
if(strpos($prazo,":"))
{
$dados = explode(":",$prazo);
$novoPrzo = $prazo[0]*60;
$novoPrzo += $prazo[1];
}
return $novoPrzo;
}
$hrUtil1 = date ("08:00");//hora util começo do dia
//Transformando hora util do começo do dia em minutos
function emMin3($hrUtil1)
{
$utilMin1 = $hrUtil1;
if(strpos($hrUtil1,":"))
{
$dados = explode(":",$hrUtil1);
$utilMin1 = $hrUtil1[0]*60;
$utilMin1 += $hrUtil1[1];
}
return $utilMin1;
}
$hrUtil = date ("18:00");//hora util fim do dia de segunda a quinta
//Transformando hora util do fim do dia em minutos
function emMin4($hrUtil)
{
$utilMin = $hrUtil;
if(strpos($hrUtil,":"))
{
$dados = explode(":",$hrUtil);
$utilMin = $hrUtil[0]*60;
$utilMin += $hrUtil[1];
}
return $utilMin;
}
$utilSexta = date ("17:00");//hora util da sexta feira
//Transformando hora util da sexta em minutos
function emMin5($utilSexta)
{
$utilMin = $utilSexta;
if(strpos($utilSexta,":"))
{
$dados = explode(":",$utilSexta);
$utilSex = $utilSexta[0]*60;
$utilSex += $utilSexta[1];
}
return $utilSex;
}
$przoEnt = $novaHr + $novoPrzo;
//compara se o dia é sexta, para trabalhar com horas da sexta
if($dia === Sexta-Feira){
$resto = $przoEnt - $utilSex;
$nvPrzo = $resto + $utilMin1;
//Transforma $nvPrzo em horas
function emHora($nvPrzo)
{
$hora = $nvPrzo/60;
$hora = (int)$hora;
$minutos = $nvPrzo%60;
if($hora<10)
{
$hora = "0".$hora;
}
if($minutos<10)
{
$minutos = "0".$minutos;
}
$nova = $hora.":".$minutos;
return $nova;
}
//somando tres dias no novo prazo
$nvPzD = date("H:i j/m/y", mktime($nova[0],$nova[1],0,$dtCham[0]+3,0,0));
}
else{//Trabalha com a hora util do resto dos dias da semana
if ($przoEnt > $utilMin){
$resto = $przoEnt - $utilMin;
$nvPrzo = $resto + $utilMin1;
//Transforma $nvPrzo em horas
function emHora($nvPrzo)
{
$hora = $nvPrzo/60;
$hora = (int)$hora;
$minutos = $nvPrzo%60;
if($hora<10)
{
$hora = "0".$hora;
}
if($minutos<10)
{
$minutos = "0".$minutos;
}
$nova = $hora.":".$minutos;
return $nova;
}
//somando um dia no novo prazo
$nvPzD = date("H:i j/m/y", mktime($nova[0],$nova[1],0,$dtCham[0]+1,0,0));
}
else{
$nvPrzo = $przoEnt;
}
}
//subtrai o prazo de entrega pelo tempo para notificação
$nvPrzo = $przoEnt - $notif;
//transforma hora atual em minutos
function emMin1($hrAtual)
{
$novaHrA = $hrAtual;
if(strpos($hrAtual,":"))
{
$dados = explode(":",$hrAtual);
$novaHrA = $hrAtual[0]*60;
$novaHrA += $hrAtual[1];
}
return $novaHrA;
}
if($nvPrzo == $novaHrA){
mail("$email", "Assunto", "Line1 da msg\nLine2 da msg\nLine 3 da msg");
}
else{
}
?>
</body>
</html>
Bom estava tentando testar o codigo, mas não estou conseguindo por causar de alguns erros, que acredito que sejam por causa da sintaxe da linguagem que não conheço bem, principalmente na hora de usar os if's para comparar horas. No segundo if do codigo que está dentro do primeiro else nesta linha
else{//Trabalha com a hora util do resto dos dias da semana
if ($przoEnt > $utilMin)
essa é uma comparação que ta dando erro e eu não sei por que, já que os dois valores estão convertidos em minutos acho que posso utilizar o operador > não é??
Pergunta
Rudy
Aloha pessoas,
sou bem iniciante em php, porém estou fazendo um scrip que faz o segunte:
Tendo os dados, hora de registro, hora atual, data registro e data atual, prazo de entrega e notificação. Eu estava tentando fazer um scrip que pegaga as horas do registro e soma com o prazo de entrega, ai quando as horas atuais fosse igual ao prazo de entrega menos o tempo de notificação é mandando um e-mail para alguém avisando que falta XX minutos para o prazo vencer.
To levando em conta tambem dias e horas uteis da semana, tendo como base seg a quinta das 8:00 as 18:00 e sextas das 8:00 as 17:00.
Bom meu problema está mesmo na comparação de horas, já programo um pouco em java, mas php sou iniciante mesmo. Olhem o codigo da para entender melhor
Bom estava tentando testar o codigo, mas não estou conseguindo por causar de alguns erros, que acredito que sejam por causa da sintaxe da linguagem que não conheço bem, principalmente na hora de usar os if's para comparar horas. No segundo if do codigo que está dentro do primeiro else nesta linhaessa é uma comparação que ta dando erro e eu não sei por que, já que os dois valores estão convertidos em minutos acho que posso utilizar o operador > não é??
Aguardo ajuda
Desde já agradeço, Obrigado...
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.