Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [Php+mysql]Aiuto, problema con differenza orari

    Ciao ragazzi,
    sto cercando di creare un sistema di gestione di alcune "macchine"...

    praticamente al login dell'utente si va a inserire nel database : id (progressivo), numero della macchina, nome, cognome e orario di "login"..

    per quanto riguarda l'orario di login ho fatto una variabile

    codice:
    $data= time();
    $query = "INSERT INTO $tab (nome, cognome, postazione, orario) VALUES ('$nome', '$cognome', '$postazione', '$data')";
    di conseguenza nel database vado a trovare un valore nel campo "orario" tipo 1129338671

    il problema è questo...

    ho creato anche una tabella che mi fa vedere tutte le macchine loggate in ordine di id con listato : nome,cognome e tutti gli altri dati.

    nel campo orario della tabella come posso far vedere il valore che riguarda quanto è il tempo che la macchina è loggata?

    mi spiego, io mi loggo alle 11:50 dalla postazione "3" , sulla tabella se vado a vedere tutte le macchine connesse dopo 15 minuti dovrei vedere l'elenco e nel campo orario, anzichè il valore 11:50, il valore 15 minuti e 0 secondi..

    mi sono spiegato bene?

  2. #2


    cosi forse è piu semplice ...

    il valore sotto "loggato da" , sta per loggato da XX minuti e XX secondi...

    come lo ottengo?

  3. #3
    I minuti:secondi - li ottieni sottraendo l'ora attuale dall'ora iniziale, poi basta calcolare il resto / 60 % 60.... potresti fare una funzione... es..
    codice:
    $ora_M = time();   // l'ora attuale, Maggiore.
    $ora_m = $row['orario']  // estratto dal db, minore
    
    function oreSubs($ora_M, $ora_m) {
    
       $diff = $ora_M - $ora_m;
       $ore = floor($diff / (60*60));
       $minuti = ($diff / 60) % 60;
       $p = "$ore:$minuti:".($diff % 60);
    
      return  $p;
    }
    
    echo oreSubs($ora_M, $ora_m);




    edit... ho aggiunto anche le ore....

    Se vuoi le ore:minuti formattati sempre a due cifre usa sprintf o number_format.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    ciao, è perfetto ma in quella funzione c'è una variabile che contiene il numero dei minuti? esempo : $ minuti= 100;
    che poi la funzione divide in 1 ora e 40 minuti...

    perchè poi su i minuti devo fare dei calcoli

  5. #5
    mi da questo errore:

    Parse error: parse error, unexpected T_FUNCTION in D:\Programmi\Apache Group\Apache2\htdocs\lan\online.php on line 21


    codice:
    <div align="center">
      <table width="100%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
        <tr>
          <td><div align="center">Numero Postazione </div></td>
          <td><div align="center">Nome</div></td>
          <td><div align="center">Cognome</div></td>
          <td><div align="center">Tempo</div></td>
          <td><div align="center">Soldi</div></td>
          <td><div align="center">Cassa</div></td>
        </tr>
        <?php
    	include "conn.inc.php";
    	$query = "SELECT * FROM $tab ORDER BY id DESC ";
    	$result = mysql_query($query, $db);
    	while ($row = mysql_fetch_array($result)){
    	
    	//orario
    	$ora_M = time();   // l'ora attuale, Maggiore.
        $ora_m = $row['orario']  // estratto dal db, minore
    
        function oreSubs($ora_M, $ora_m) {
        $diff = $ora_M - $ora_m;
        $ore = floor($diff / (60*60));
        $minuti = ($diff / 60) % 60;
        $p = "$ore:$minuti:".($diff % 60);
        return  $p;
        }
        echo oreSubs($ora_M, $ora_m);
    	?>
    		<tr>
          <td><div align="center"><? echo $row[postazione]; ?></div></td>
          <td><div align="center"><? echo $row[nome]; ?></div></td>
          <td><div align="center"><? echo $row[cognome]; ?></div></td>
          <td><div align="center">$orario-attuale</div></td>
          <td><div align="center">calcolo dei soldi </div></td>
          <td><div align="center">X</div></td>
        </tr>
    
    	<?
    	};
    	?>
      </table>
    </div>
    la linea 21 è function oreSubs($ora_M, $ora_m) {

    edit: la variabile $orario-attuale, l'ho messa a chez di cane per ricordarmi che li ci va l'orario , quindi è inutile

  6. #6
    $ora_m = $row['orario']

    manca il ; a chiudere la riga.... dimenticai...

    l'ho scritta sul thread senza provarla....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Originariamente inviato da piero.mac
    $ora_m = $row['orario']

    manca il ; a chiudere la riga.... dimenticai...

    l'ho scritta sul thread senza provarla....

    lol hai ragione


    e per quanto riguarda questo?
    ciao, è perfetto ma in quella funzione c'è una variabile che contiene il numero dei minuti? esempo : $ minuti= 100;

  8. #8
    ora se ho piu di un record mi da :

    Fatal error: Cannot redeclare oresubs() (previously declared in D:\Programmi\Apache Group\Apache2\htdocs\lan\online.php:21) in D:\Programmi\Apache Group\Apache2\htdocs\lan\online.php on line 21


    :S

  9. #9
    La funzione si deve dichiarare una volta sola... o si mette in un file da includere o la esegui una volta sola... ad esempio ad inizio pagina.

    Poi richiami solo la funzione tutte le volte che ti pare.

    Se guardi nella funzione c'e la stringa dei minuti. Basta estrarla.

    se vuoi solo i minuti senza le ore:

    $minuti = floor($diff / 60);

    Dai, .... un pochino di tuo metticelo... prova !


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Originariamente inviato da piero.mac
    La funzione si deve dichiarare una volta sola... o si mette in un file da includere o la esegui una volta sola... ad esempio ad inizio pagina.

    Poi richiami solo la funzione tutte le volte che ti pare.

    Se guardi nella funzione c'e la stringa dei minuti. Basta estrarla.

    se vuoi solo i minuti senza le ore:

    $minuti = floor($diff / 60);

    Dai, .... un pochino di tuo metticelo... prova !

    hai ragione :P

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.