Ir para conteúdo
Alessandro Ramos

Verificar o horário e soma-lo a "N" minutos

Recommended Posts

Boa tarde a todos,

Eu tenho um formulário que pega a hora do cliente e soma com 50 minutos, esse é o prazo da entrega do serviço, o cliente recebe essa mensagem por email. Até ai tudo bem, segue a parte do código:

date_default_timezone_set('America/Sao_Paulo');
$hora = date('H:i:s');

$message .= date('H:i:s', strtotime('+50 minute', strtotime($hora)));

O que eu preciso é colocar algo que diga, se a soma do horário for inferior a 11:00 então o horário de entrega será 11:50. Apenas isso!

No atual código, quando alguém acessa as 9:00 ele recebe o email com o prazo de entrega para 9:50, e na verdade todos os pedidos feitos antes das 11:00 serão entregues as 11:50. Sou leigo em PHP, vi que pode ser algo com o comando "if", mas não sei direito, quem puder ajudar eu agradeço e muito!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Alaerte,

Primeiro, obrigado pela sua atenção!

 

Quando o cliente envia o formulario de pedido, eu recebo esse formulário com a HORA QUE FOI ENVIADO e com uma previsão de entrega, essa previsão nada mais é que a hora que o pedido foi enviado somado com 50 minutos. hora + 50 minutos.

Isso já acontece, mas queria que o formulário reconhecesse se o formulário foi enviado antes das 11:00 então a previsão de entrega será sempre 11:50, entendeu?

Se o cliente envio o formuláiro as 11:02 então o sistema iria somar normalmente o horário e a previsão seria 11:52.

 

 

 

Não entendi ??

if($message < '11:00:00'){       $message = '11:50:00';}

Oi Alaerte,

Primeiro, obrigado pela sua atenção!

 

Quando o cliente envia o formulario de pedido, eu recebo esse formulário com a HORA QUE FOI ENVIADO e com uma previsão de entrega, essa previsão nada mais é que a hora que o pedido foi enviado somado com 50 minutos. hora + 50 minutos.

Isso já acontece, mas queria que o formulário reconhecesse se o formulário foi enviado antes das 11:00 então a previsão de entrega será sempre 11:50, entendeu?

Se o cliente envio o formuláiro as 11:02 então o sistema iria somar normalmente o horário e a previsão seria 11:52.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente pesquisando, coloquei assim o codigo:

<?php
include "login_senha.php";

$login = $_SESSION['login_usuario'];

$sql = mysql_query("SELECT * FROM usuarios WHERE email = '$email'");
while($linha = mysql_fetch_array($sql)) {
	$nome = $linha['nome'];
	$endereco = $linha['endereco'];
	$cep = $linha['cep'];
	$telefone = $linha['telefone'];
	$email = $linha['email'];
}
if($prazo<"11:00:00"){
$sit = "11:50:00";
}elseif($prazo>="11:00:00") {
$sit = $hora;
}

date_default_timezone_set('America/Sao_Paulo');
$prazo = date('H:i:s', strtotime('+50 minute', strtotime($hora)));
$m = $_POST["mensagem"];
$data = $_POST["data"];
$nome = $_POST['nome'];
$email = $_POST['email'];
$cep = $_POST['cep'];
$endereco = $_POST['endereco'];
$telefone = $_POST['telefone'];
$hora = date('H:i:s');
$pagamento = $_POST["pagamento"];
$troco = $_POST["troco"];
$mtotal = $_POST["mtotal"];
$nop = $_POST["nop"];
$op = $_POST["op"];
$obsfruta = $_POST["obsfruta"];
$quentes = $_POST["quentes"];
$saladas = $_POST["saladas"];
$sopas = $_POST["sopas"];
$sobremesas = $_POST["sobremesas"];
$sucos = $_POST["sucos"];
$bebidas = $_POST["bebidas"];
$emporio = $_POST["emporio"];

$message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Bardana</title>';

$message .= '<style type="text/css">body, #bodyTable{height:100% !important; margin:0; padding:0; width:100% !important;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;color:#000000;font-weight:normal;}table{border-collapse:collapse;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;}img, a img{border:0; outline:none; text-decoration:none;height:auto; line-height:100%;}a{text-decoration:none !important;}.ReadMsgBody{width:100%;} .ExternalClass{width:100%;}.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div{line-height:100%;}table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;}#outlook a{padding:0;}img{-ms-interpolation-mode: bicubic;display:block;outline:none; text-decoration:none;}body, table, td, p, a, li, blockquote{-ms-text-size-adjust:100%; -webkit-text-size-adjust:100%; font-weight:normal!important;}.ExternalClass td[class="ecxflexibleContainerBox"] h3 {padding-top: 10px !important;}</style>';

$message .= '</head><body bgcolor="#EEEEEE" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"><center style="background-color:#EEEEEE;"><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="table-layout: fixed;max-width:100% !important;width: 100% !important;min-width: 100% !important;"><tr><td align="center" valign="top" id="bodyCell"><table bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" height="200" valign="top" align="center" style="color:#008D44;font-size:18px;"><img src="http://bardananatural.com.br/cardapioonline/images/topo.jpg" alt="Bardana" width="650" height="99" /><strong>Pedido feito em ';

$message .= $data; 

$message .= '</head><body bgcolor="#EEEEEE" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"><center style="background-color:#EEEEEE;"><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="table-layout: fixed;max-width:100% !important;width: 100% !important;min-width: 100% !important;"><tr><td align="center" valign="top" id="bodyCell"><table bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" height="30" valign="top" align="center" style="color:#f0610e;font-size:14px;"><strong>Prazo limite para entrega: ';

$message .= $prazo;

Mas não está vindo a hora certa, só aparece 21:50:00

Não sei o que fazer!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim, cara. Fiz rapidinho, mas acho que faz o que você precisa:

<?php
$Agora = new DateTime();
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );

if ( $Agora < $HoraLimite )
    $HoraServico = $HoraLimite->modify( '+ 50min' );

printf(
    'Horario da consulta: %s',
    $HoraServico->format( 'H:i:s' )
);

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tenta assim, cara. Fiz rapidinho, mas acho que faz o que você precisa:

<?php
$Agora = new DateTime();
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );

if ( $Agora < $HoraLimite )
    $HoraServico = $HoraLimite->modify( '+ 50min' );

printf(
    'Horario da consulta: %s',
    $HoraServico->format( 'H:i:s' )
);

;)

 

 

Olá Matheus,

Obrigado pela atenção!

Coloquei assim:

<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>BARDANA</title>
<link href='http://fonts.googleapis.com/css?family=Lato:400,700,900' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Roboto+Slab:700' rel='stylesheet' type='text/css'>
<link href='form.css' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="pagina" style="text-align:center;margin:100px auto;padding:50px;">

<?php
include "login_senha.php";

$login = $_SESSION['login_usuario'];

$sql = mysql_query("SELECT * FROM usuarios WHERE email = '$email'");
while($linha = mysql_fetch_array($sql)) {
	$nome = $linha['nome'];
	$endereco = $linha['endereco'];
	$cep = $linha['cep'];
	$telefone = $linha['telefone'];
	$email = $linha['email'];

$Agora = new DateTime();
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );

if ( $Agora < $HoraLimite )
    $HoraServico = $HoraLimite->modify( '+ 50min' );

printf(
    'Horario da consulta: %s',
    $HoraServico->format( 'H:i:s' )
);

date_default_timezone_set('America/Sao_Paulo');
$m = $_POST["mensagem"];
$data = $_POST["data"];
$nome = $_POST['nome'];
$email = $_POST['email'];
$cep = $_POST['cep'];
$endereco = $_POST['endereco'];
$telefone = $_POST['telefone'];
$pagamento = $_POST["pagamento"];
$troco = $_POST["troco"];
$mtotal = $_POST["mtotal"];
$nop = $_POST["nop"];
$op = $_POST["op"];
$obsfruta = $_POST["obsfruta"];
$quentes = $_POST["quentes"];
$saladas = $_POST["saladas"];
$sopas = $_POST["sopas"];
$sobremesas = $_POST["sobremesas"];
$sucos = $_POST["sucos"];
$bebidas = $_POST["bebidas"];
$emporio = $_POST["emporio"];

$message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Bardana</title>';

$message .= '<style type="text/css">body, #bodyTable{height:100% !important; margin:0; padding:0; width:100% !important;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;color:#000000;font-weight:normal;}table{border-collapse:collapse;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;}img, a img{border:0; outline:none; text-decoration:none;height:auto; line-height:100%;}a{text-decoration:none !important;}.ReadMsgBody{width:100%;} .ExternalClass{width:100%;}.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div{line-height:100%;}table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;}#outlook a{padding:0;}img{-ms-interpolation-mode: bicubic;display:block;outline:none; text-decoration:none;}body, table, td, p, a, li, blockquote{-ms-text-size-adjust:100%; -webkit-text-size-adjust:100%; font-weight:normal!important;}.ExternalClass td[class="ecxflexibleContainerBox"] h3 {padding-top: 10px !important;}</style>';

$message .= '</head><body bgcolor="#EEEEEE" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"><center style="background-color:#EEEEEE;"><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="table-layout: fixed;max-width:100% !important;width: 100% !important;min-width: 100% !important;"><tr><td align="center" valign="top" id="bodyCell"><table bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" height="200" valign="top" align="center" style="color:#008D44;font-size:18px;"><img src="http://bardananatural.com.br/cardapioonline/images/topo.jpg" alt="Bardana" width="650" height="99" /><strong>Pedido feito em ';

$message .= $data; 

$message .= '</head><body bgcolor="#EEEEEE" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"><center style="background-color:#EEEEEE;"><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="table-layout: fixed;max-width:100% !important;width: 100% !important;min-width: 100% !important;"><tr><td align="center" valign="top" id="bodyCell"><table bgcolor="#FFFFFF" border="0" cellpadding="0" cellspacing="0" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" height="30" valign="top" align="center" style="color:#f0610e;font-size:14px;"><strong>Prazo limite para entrega: ';

$message .= $HoraLimite;

$message .= '</strong><br /><br /></td></tr><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" valign="top" align="center"><table border="0" cellpadding="0" cellspacing="0" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;">';

$message .= '<tr><td width="295" height="100" valign="top" align="left" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p><strong>Endereço: </strong>' . $endereco . '</p><p><strong>CEP: </strong>' . $cep . '</p><p><strong>Forma de Pagamento: </strong><br />' . $pagamento . '</p><p><strong>Precisa de troco?: </strong><br />' . $troco . '</p><br /></td><td width="295" height="100" valign="top" align="left" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"><p><strong>Nome: </strong>' . $nome . '</p><p><strong>Telefone: </strong>' . $telefone . '</p><p><strong>E-mail: </strong>' . $email . '</p><p><strong>Total do seu pedido: </strong>R$ ' . $mtotal . '</p><br /></td></tr><tr><td colspan="2" width="295" height="3" bgcolor="#008D44" style="font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"></td></tr><tr><td width="295" height="40" valign="middle" align="left" style="color:#008D44;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p><strong>Escolha a sua opção: </strong></p></td><td width="295" height="40" valign="middle" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"><p>' . $nop . $op . '</p></td></tr>';

$message .= '<tr><td colspan="2" width="293" height="3" border="1" bgcolor="#008D44" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"></td></tr><tr><td width="293" height="40" border="1" cellspacing="1" cellpadding="10" valign="top" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Pratos quentes:</strong></p>' . $quentes . '<br /></td><td width="293" height="40" valign="top" cellspacing="1" cellpadding="10" bgcolor="#D7D7D7" border="1" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Saladas:</strong></p>' . $saladas . '<br /><p><strong></strong></p>' . $obsfruta . '<p></p></td></tr>';

$message .= '<tr><td colspan="2" width="293" height="3" border="1" bgcolor="#008D44" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"></td></tr><tr><td width="293" height="40" border="1" cellspacing="1" cellpadding="10" bgcolor="#D7D7D7" valign="top" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Sopa do Dia:</strong></p>' . $sopas . '<br /></td><td width="293" height="40" cellspacing="1" cellpadding="10" border="1" valign="top" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Sobremesas:</strong></p>' . $sobremesas . '<br /></td></tr>';

$message .= '<tr><td colspan="2" width="293" height="3" border="1" bgcolor="#008D44" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"></td></tr><tr><td width="293" height="40" border="1" cellspacing="1" cellpadding="10" valign="top" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Sucos:</strong></p>' . $sucos . '<br /></td><td width="293" height="40" border="1" cellspacing="1" cellpadding="10" bgcolor="#D7D7D7" valign="top" align="left" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Bebidas:</strong></p>' . $bebidas . '<br /></td></tr>';

$message .= '<tr><td colspan="2" width="293" height="3" border="1" bgcolor="#008D44" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:14px;"></td></tr><tr><td colspan="2" width="293" height="40" cellspacing="1" cellpadding="10" border="1" style="color:#000000;font-family:Tahoma, Geneva, Helvetica, Arial, "Lucida Grande", sans-serif;font-size:12px;"><p style="color:#008D44;"><strong>Nosso Empório:</strong></p>' . $emporio . '<br /></td></tr>';

$message .= '<tr><td colspan="2" width="295" height="100" align="center" valign="middle" bgcolor="#f47123" style="line-height:18px">Obrigado pela sua preferência.<br />Seu pedido vai chegar rapidinho!<br />www.bardanacozinhanatural.com.br<br />21. 2292-9232 | 2220-0334</td></tr></table></td></tr><tr><td background="http://www.bardananatural.com.br/cardapioonline/images/centro.jpg" width="650" height="50" valign="top" align="center">
<img src="http://bardananatural.com.br/cardapioonline/images/rodape.jpg" alt="" width="650" height="50" /></td></tr></table></td></tr></table></center></body></html>';

$to = $email;
$subject = "Seu pedido ao restaurante BARDANA";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$headers .= 'From: <contato@ramosdesign.com.br>' . "\r\n";
$headers .= 'Cc: contato@ramosdesign.com.br' . "\r\n";

//mail($to,$subject,$message,$headers);

if(mail($to,$subject,$message,$headers))
{
  echo "Seu pedido foi enviado com sucesso.<br>Você está recebendo uma cópia no endereço de e-mail que foi fornecido.<br><br>Obs.: Se você não receber a cópia do seu pedido em 10 minutos,<br>cheque a sua caixa de SPAM ou ligue para 2292-9232 | 2295-0334<br><br>";
}else{
  echo "Algo saiu errado no envio do seu pedido.<br>Por favor, ligue para 2292-9232 | 2295-0334<br><br>";
}

echo "<input type='button' id='voltar' class='botao' value=' VOLTAR ' onClick='location.replace(\"" . "http://bardananatural.com.br/" . "\");'>";
?>
 

</div> <!-- pagina -->
</body>
</html>

Na hora do envio deu essa msg:

 

Parse error: syntax error, unexpected end of file in /home/barda589/public_html/pedido_online/mail.php on line 110

 

A linha 110 é o </html> não entendi o erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Alessandro Ramos melhor contratar alguém pra fazer isso. Pelo que vi você não está aprendendo (up- leia estudando) e sim querendo implementar isso em um sistema em produção. Isso pode gerar complicações dependendo do que trata seu sistema.

Por favor me corrija se estou equivocado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

 

 

@Alessandro Ramos melhor contratar alguém pra fazer isso. Pelo que vi você não está aprendendo e sim querendo implementar isso em um sistema em produção. Isso pode gerar complicações dependendo do que trata seu sistema.

Por favor me corrija se estou equivocado.

 

Oi Marcos,

Muitas coisas eu aprendi pelas aulas, tutorias, minha área é design, mas consegui criar o formulário de cadastro, login, até o formulário, que carrega automaticamente os dados, resumindo, sou esforçado, mas tem detalhes, bobos mesmo, que as vezes eu deixo passar.

 

Como por exemplo, no último post eu tive uma ajuda que foi uma besteirinha minha que eu não vi, enfim, estou explicando isso para você vê que estou correndo atrás de aprender.

Cada coisa que aprendo com os erros, eu anoto e não esqueço!

 

Esse lance do horário, eu consegui fazer a soma dos 50 minutos, mas o detalhe do reconhecimento do horário que estou queimando a cabeça. O que o Matheus passou, acredito que está perfeito, mas tem alguma besteira que eu fiz que dá esse erro, confesso que não parei para olhar com calma, vou fazer isso agora.

 

Mas, claro, se você olhando o código perceber onde eu errei te agradeceria e muito!

 

 

O erro que me apresenta agora, usando a seu código Matheus é:

Horario da consulta: 11:50:00Catchable fatal error: Object of class DateTime could not be converted to string in .../mail.php on line 69

que é :

$message .= $HoraLimite;

Onde deveria mostrar no email o horário limite.

Vou aqui tentando vê qual é o problema.

De qualquer forma agradeço a atenção de todos.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma olhada rápida. Verifique se você fechou o while

 

 

 

Horario da consulta: 11:50:00
Catchable fatal error: Object of class DateTime could not be converted to string in .../mail.php on line 69

 

Resolva usando

$message .= $HoraLimite->format( 'H:i:s' );

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Dei uma olhada rápida. Verifique se você fechou o while

 

 

Resolva usando

$message .= $HoraLimite->format( 'H:i:s' );

 

Obrigado Marcos,

Resolveu o problema, só não funcionou o esquema que o Matheus explicou, ou fiz algo de errado!

 

Nessa linha como está aparece no email 11:50, mudei para $message .= $HoraServico->format ( 'H:i:s'); também aparece 11:50.

 

Vou continuar pesquisando, valeu e muito pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei, pelo que eu falei e entendi do código que ele passou:

<?php$Agora = new DateTime();$HoraServico = new DateTime( 'now + 50min' );$HoraLimite = new DateTime( 'today 11:00:00' );if ( $Agora < $HoraLimite )    $HoraServico = $HoraLimite->modify( '+ 50min' );printf(    'Horario da consulta: %s',    $HoraServico->format( 'H:i:s' ));

$Agora é a hora atual, $Hora do Serviço na verdade é a hora da entrega, e Hora Limite que ele colocou seria na verdade para informar que TODOS OS PEDIDOS feitos antes das 11:00:00 seria entregue as 11:50:00.

 

Então SE (if) a hora atual ($Agora) for menor que a $HoraLimite, então a $HoraServiço (que é a hora que aparecerá no email da entrega) deverá sempre aparecer no email como 11:50:00.

 

Então SE (if) a hora atual ($Agora) for MAIOR que a $HoraLimite, então a $HoraServiço (que é a hora que aparecerá no email da entrega) deverá SER SOMADA A 50 minutos.

 

Mas algo, eu acho, está errado!

 

Lá na linha:

$message .= $HoraLimite->format( 'H:i:s' );

O certo não seria $HoraLimite e sim $HoraServiço correto?

 

Mas tem algo dando errado...rs...vou tentando aqui!

 

 

Eu sei, pelo que eu falei e entendi do código que ele passou:

<?php$Agora = new DateTime();$HoraServico = new DateTime( 'now + 50min' );$HoraLimite = new DateTime( 'today 11:00:00' );if ( $Agora < $HoraLimite )    $HoraServico = $HoraLimite->modify( '+ 50min' );printf(    'Horario da consulta: %s',    $HoraServico->format( 'H:i:s' ));

$Agora é a hora atual, $Hora do Serviço na verdade é a hora da entrega, e Hora Limite que ele colocou seria na verdade para informar que TODOS OS PEDIDOS feitos antes das 11:00:00 seria entregue as 11:50:00.

 

Então SE (if) a hora atual ($Agora) for menor que a $HoraLimite, então a $HoraServiço (que é a hora que aparecerá no email da entrega) deverá sempre aparecer no email como 11:50:00.

 

Então SE (if) a hora atual ($Agora) for MAIOR que a $HoraLimite, então a $HoraServiço (que é a hora que aparecerá no email da entrega) deverá SER SOMADA A 50 minutos.

 

Mas algo, eu acho, está errado!

 

Lá na linha:

$message .= $HoraLimite->format( 'H:i:s' );

O certo não seria $HoraLimite e sim $HoraServiço correto?

 

Mas tem algo dando errado...rs...vou tentando aqui!

 

E dessa forma $message .= $HoraServico->format( 'H:i:s' ); só aparece no email 11:50:00 SEMPRE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao use else. Algo como:

$Agora = new DateTime();
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );


if ( $Agora < $HoraLimite ){
    $HoraServico = $HoraLimite->modify( '+ 50min' );
}else{
     $HoraLimite= $HoraServico;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Entao use else. Algo como:

$Agora = new DateTime();$HoraServico = new DateTime( 'now + 50min' );$HoraLimite = new DateTime( 'today 11:00:00' );if ( $Agora < $HoraLimite ){    $HoraServico = $HoraLimite->modify( '+ 50min' );}else{     $HoraLimite= $HoraServico;}

 

Valeu Marcos, agora recebi legal o email, amanhã vu testar para vê se antes das 11hs ele irá enviar com o horário de entrega as 11:50.

Cara, muito obrigado pela sua atenção, vou estudar melhor o if e o else, já vi que vai me ajudar muito em outras situações.

 

 

Pensei que estivesse tudo OK, mas a hora não está sendo reconhecida como (America/Sao Paulo), coloquei

new DateTime('America/Sao_Paulo') não funcionou!

 

No código tem date_default_timezone_set('America/Sao_Paulo'); mas não esta reconhecendo, diferença de 2 horas pra baixo...):

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que consegui!

Coloquei:

$Agora = date_default_timezone_set('America/Sao_Paulo');
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );


if ( $Agora < $HoraLimite ){
    $HoraServico = $HoraLimite->modify( '+ 50min' );
}else{
     $HoraLimite= $HoraServico;
}

Tenho que testar amanhã antes das 11hs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro você estudar muito viu Alessandro, realmente fica difícil orientá-lo dessa forma. Você ao menos entende o que está sendo passado.

 

A variável $Agora não recebe nenhum valor pra você comparar aí. Você tem que pegar a hora atual querido.

$Agora = date('H:i:s');

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Sugiro você estudar muito viu Alessandro, realmente fica difícil orientá-lo dessa forma. Você ao menos entende o que está sendo passado.

 

A variável $Agora não recebe nenhum valor pra você comparar aí. Você tem que pegar a hora atual querido.

$Agora = date('H:i:s');

 

Verdade amigo, já fiz tanta coisa aqui, que metade não entendi, mas deu certo...rs. Obrigado pela orientação!! Vou correr atrás do prejuízo, estudar mais mesmo.

Abração, parece que agora deu certo, estou esperando passar das 11hs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente assim:

$Agora = date('H:i:s');
$HoraServico = new DateTime( 'now + 50min' );
$HoraLimite = new DateTime( 'today 11:00:00' );


if ( $Agora < $HoraLimite ){
    $HoraServico = $HoraLimite->modify( '+ 50min' );
}

else if ( $Agora > $HoraLimite ){
    $HoraServico = new DateTime( 'now + 50min' );
	
};

Não está funcionando, só aparece 11:50:00

Alguém, por favor, poderia me mostrar aonde está o erro?

A coisa é simples, se $Agora for menor que $HoraLimite, então a $HoraServico será 11:50:00. Se $Agora for maior que $HoraLimite, então a $HoraServico será a $HoraServico, que nada mais é que a hora atual somada com 50minutos.

Poxa, não foi essa regra que eu coloquei acima? Cara sou muito burro e estou me ferrando com meu cliente só por causa disso... :(

 

Ná linha da mensagem, onde irá aparecer a hora no email é assim:

$message .= $HoraServico->format( 'H:i:s' );

Isso acredito que está certo..rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Graça a Deus resolvi!

date_default_timezone_set('America/Sao_Paulo');
$Agora = date('H:i:s');
$HoraServico = date('H:i:s', strtotime('+50 minute', strtotime($Agora)));


if ( $Agora < '11:00:00'){
    $HoraServico = '11:50:00';
}

else if ( $Agora > '11:00:00' ){
    $HoraServico == $HoraServico;
	
};

A linha onde aparece a hora da entrega!

$message .= $HoraServico;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Highlander1901
      Senhores, buenas... não consigo efetuar esse SELECT, e já quebrei a cabeça pra dar certo. Podem me ajudar?
       
      SELECT
               "A"."CCUSTO" as "Célula",
               "A"."IDCONTR" as "Matrícula",
               "A"."NOME",
               "A"."SINDICATO",
               "A"."DESCEVENTO",
               "A"."LOCAL",
               (HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) as "Mes Anterior",
               (HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60)) as "Mes Atual",
               ((HOUR("A"."JAN") + (MINUTE("A"."JAN") / 60)) -(HOUR("A"."FEV") + (MINUTE("A"."FEV") / 60))) as "Crescimento",
               (MINUTE("A"."FEV") / 60) as "Minutos"
      FROM  "BD_HORAS" AS  "A" 
      WHERE     "A"."CCUSTO"  = '113'
       OR    "A"."CCUSTO"  = '432'
       
      Detalhes de erro:
      Qualquer uma das opções abaixo poderia ser a possibilidade para o erro:

      1. Poderia haver tipos incompatíveis de dados em um dos lados do operador comparador. Nesse caso, converta as colunas e tente novamente.

      2. Não há função correspondente ao nome  e argumento fornecidos. Você pode precisar adicionar conversões do tipo explícita.   Obs.: Sempre utilizei esse código, o que alterava era apenas o as colunas "JAN" e "FEV", dependendo do avanço dos meses.
       
      HEEEELP!
    • Por Vinny Oliveira
      Bom dia pessoal!
       
      Devido as mudanças no horário de verão que estão ocorrendo atualmente, algumas plataformas adiantaram incorretamente o horário.
      O comando "date" do php está retornando o horário adiantado, sendo que o servidor (windows) está com a hora e timezone(php.ini e clock do windows) correta.
      De onde o PHP está buscando esse horário? Como corrigir?
    • Por Rodymb
      Bom dia!
       
      Preciso fazer um update em um campo do tipo  int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
       
      update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114) FROM tab_nota_header where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59' and numpdv=111 and codloja=1 and numnota=74841) where m00af='2018-08-01' and m00za=1 and m00ac=111 and m00ad=69614
       
      Esse update retornou a seguinte mensagem:
      Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
       
      No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
      Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
       
      Existe alguma forma de fazer esse update da forma que preciso?
       
    • Por Cícero Antônio
      Olá Pessoal,
       
      Qual a média, ou a base de cálculo, para cobrança da hora do suporte por chamado, para clientes que não querem pagar mensalidades?
       
      Tem clientes que ao pagarem por um site, não querem ficar presos a uma mensalidade, porém, mesmo assim, querem um suporte pós publicação quando precisam de alguma atualização no site. Já tentei fixar valores mensais mais alguns clientes insistem em não querer pagar mensalidades.
       
      Agradeço se puderem contribuir com a informação. 
    • Por Luis Fernando R. Valle
      Boa tarde.
      Estou tentando fazer uma consulta no mysql. Já tentei de todas as formas e não estou conseguindo obter a resposta correta.
      Os campos são: dia, horario_inicio, horario_fim
       
      A consulta que estou fazendo é:
      SELECT * FROM (`auditorio`) WHERE `horario_inicio` >= '07:00' AND `horario_fim` > '07:00' AND `horario_fim` <= '11:00' AND `dia` = '2018-07-05'
       
      Sendo as:
      07:00 horario_inicio
      11:00 horario_fim
       
      Desde já agradeço pelo auxilio, pois ja tentei de varias formas, tanto com ou sem OR.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.