Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vidaloka860

Verifica tempo maximo

Recommended Posts

Tipo queria saber como começar um script tipo...

meu site tem um contador em java que faz uma contagem regressiva, so que se a pessoa fechar e abrir novamente ele zera...

queria montar um que pegasse a hora que a pessoa começou e soma-se mais 40 minutos se caso a pessoa tentar acessar a sua prova depois desse tempo fala que aprova esta inacessível e manda para uma pagina

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, então você pode resolver o problema da seguinte forma:

  • Quando o usuário logar, e for fazer a prova, salve em uma tabela a data de ínicio

  • Quando ele logar novamente e/ou entrar na página, verifique pela data de ínicio dessa prova

  • Faça os calculos com base na data atual

  • Verifique se já passou, se não passou, monta o countdown a partir dessa última data em que esteve na página da prova

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, o problema que eu tenho esta justamente no item 3...

Não consigo intender a logica de contas de horas no php...

 

Você teria um exemplo pra me mostrar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então faça assim:

<?php
      $startEnd [ 'START' ] = '2011-12-23 15:18:00';
      $startEnd [ 'END' ] = '2011-12-23 15:39:59' ;

      $time [ 'START' ] = strftime ( '%M' , strtotime ( $startEnd [ 'START' ] ) ) ;
      $time [ 'END' ] = strftime ( '%M' , strtotime ( $startEnd [ 'END' ] ) ) ;

      if ( ( $time [ 'END' ] - $time [ 'START' ] ) > 40 ) {
             echo 'Tempo esgotado' ;
      } else echo 'Continue fazendo ...' ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais cara, coloquei no meu site e notei o seguinte problema...

Segundo o seu exemplo mesmo. se a pessoa deu start as 15:18:00

e terminou as 15:39:59, tudo bem, ela pode tecnicamente continuar... agora se na hora de buscar a data a hora tiver mudado ele não da certo, tipo mudei a hora de 15 para 18 e ele deixou continuar fazendo... como concertar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho .. faça assim então

<?php
      #$start = '2011-12-24 12:32:00';
      $start = date ( 'Y-m-d G:i:s' ) ;

      if ( strtotime ( '+40 minutes' , strtotime ( $start ) ) > time ( ) ) {
             echo 'Continue fazendo ...' ;
      } else echo 'Tempo esgotado ...' ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo o que ta acontecendo...

o codigo para teste que eu fiz

 

<?php
      #$start = '2011-12-24 12:32:00';
      $start1 = date ( 'Y-m-d G:i:s' ) ;
      $start = '2011-12-24 23:04:16';
      if ( strtotime ( '+40 minutes' , strtotime ( $start ) ) > time ( ) ) {
             echo 'Continue fazendo ...' ;
      } else echo 'Tempo esgotado ...' ;
   echo $start1;
   ?>

ou seja so coloquei uma data fixa para iniciar...

23 horas

depois eu executei no navegador

Continue fazendo ...2011-12-24 21:07:41

noque que passaram mais que 40 minutos na verdade praticamente duas hora e ele ainda fala que pode fazer a prova...

eu que não estou configurando certo?

ou estou interpretando errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então vamos fazer de uma maneira diferente ..

 

<?php
      $now = date ( 'Y-m-d G:i:s' ) ;    
      $to = strftime ( '%Y-%m-%d %H:%M:%S' , strtotime ( '+40 minutes' , strtotime ( '2011-12-24 21:04:16' ) ) ) ;

      echo 'Começou :: 2011-12-24 21:04:16' , PHP_EOL ;
      echo 'Tem até :: ' , $to , PHP_EOL ;
      echo 'Data atual :: ' , $now , PHP_EOL ;

      $datetime = new DateTime ( $now );
      $interval = $datetime->diff ( new DateTime ( $to ) ) ;

      echo 'Tempo restante :: ' , $interval->format ( '%H Horas %I Minutos %S Segundos' ) ;

 

Você tendo essas informações, sabe o que fazer para criar a condição ?

Começou :: 2011-12-24 21:04:16
Tem até :: 2011-12-24 21:44:16

Data atual :: 2011-12-24 21:28:38
Tempo restante :: 00 Horas 15 Minutos 38 Segundos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim , so uma pergunta..., sempre quando vou usar ir eu uso variavel mais nesse final não tem variavel, so %H, ele se torna $ na hora que eu igualar ou tenho que fazer uma variavel com ele e depois colocar no if?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, vou fazer tipo assim

 

 if($hora > '0')
   {
      Você não pode salvar esta prova
    };
     else
    {
       if($minutos > '40')
            {
      Você não pode salvar esta prova
            };
       else
            {
             Cliquei aqui para salvar esta prova
             };
     };

os segundos não precisa

 

obs: desculpa pelos incômodos e minha tantas duvida =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, desculpa o duplo post.

 

Só que esta muito difícil fazer esta função, todo modo que faço da errado...

 

O ultimo teste que fiz foi assim.

<!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>Untitled Document</title>
</head>
<?php $datateste = $row_Recordset1['datainicio']; ?> 
<?php

      $now = date ( 'Y-m-d G:i:s' ) ;    
      $to = strftime ( '%Y-%m-%d %H:%M:%S' , strtotime ( '+40 minutes' , strtotime ( '$datateste' ) ) ) ;

      echo 'Começou :: '.$datateste , PHP_EOL ; "\n";
      echo 'Tem até :: ' , $to , PHP_EOL ; "\n";
      echo 'Data atual :: ' , $now , PHP_EOL ;"\n";

      $datetime = new DateTime ( $now );
      $interval = $datetime->diff ( new DateTime ( $to ) ) ;

      echo 'Tempo restante :: ' , $interval->format ( '%H Horas %I Minutos %S Segundos' ) ;
   ?>
      <?php $logado = $_SESSION['MM_Username']; ?>
      <?php $data123 = strftime ( '%Y-%m-%d %H:%M:%S') ?>

  <?php /* $sql = "INSERT INTO provadoaluno(id_aluno, datainicio) VALUES ('$logado','$data123')";
  mysql_query($sql);
 */ ?>
<body>
</body>
</html>

 

Por que eu acabei de inserir a hora no banco de dados...

 

Começou :: 2011-12-26 15:15:58

Tem até :: 1970-01-01 01:40:00

Data atual :: 2011-12-26 15:16:29

Tempo restante :: 13 Horas 36 Minutos 29 Segundos

 

Vo tentar por cookies... OBG a todos que me ajudaram

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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