Newsgroup: it.comp.www.php
Titolo: Non riesco a fargli tenere le doppie cifre

Buongiorno forum,
mi spiego meglio.
Ho le variabili
$ora_entrata
$min_entrata
$ora_uscita
$min_uscita
$diff_ore
$diff_minuti
Se i minuti sono
$min_entrata = 00 //che lo passo con una select
$min_uscita = 00 //che lo passo con una select
$diff_minuti deve essere uguale a 00
invece al db arriva 0
come posso fargli mantenere 00?
Grazie a tutti
ps: ho appena cominciato con php e mysql e questi sono giï¿œ i primi 
scogli con cui mi scontro.

 mi spiego meglio.
È già chiarissimo, non si può spiegare meglio "buongiorno".

 come posso fargli mantenere 00?
Non lo fai. E ringrazia che diventa 0 ;) , visto che i numeri che 
iniziano con 0 sono in base ottale (quindi, per esempio. 010=9).
Il risultato lo formatti quando lo scrivi nell'HTML, non quando lo 
memorizzi nel DB (con number_format, printf, ecc. ecc.).
In alternativa, nel DB salva il numero di secondi dalla mezzanotte, 
invece dei tre campi separati. Per esempio, le 8:23:42 diventano 42
+(23*60)+(8*60*60) = 30222. Quando lo visualizzi fai l'operazione inversa.
Questo ti rende anche molto piu` semplici i calcoli ("e` entrato alle 
8:34, uscito alle 16:12. Quanto ha lavorato?").
Bye.


:D
Se il campo del db e' numerico, memorizzera' lo zero come zero, appunto...
Puoi al limite formattare il valore quando lo vai a leggere dal db, 
trasformandolo in stringa con qualcosa del genere (molto brutta):
$diff_minuti = $row[diff_minuti];
$diff_minuti = substr("0".$diff_minuti, -2);

 +(23*60)+(8*60*60) = 30222. Quando lo visualizzi fai l'operazione inversa.
Meglio una colonna di tipo INTERVAL o TIME, se disponibile.
Y.

 8:34, uscito alle 16:12. Quanto ha lavorato?").
Per essere proprio pignoli dovrebbe anche prevedere qualcosa per poter 
gestire quei lavori in cui inizi il turno oggi e finisci domani 
(infermieri e poliziotti ad esempio). Altrimenti il calcolo sballa 
perche' inizi alle 23.00 e termini alle 7.00.

 perche' inizi alle 23.00 e termini alle 7.00.
Io mi sono basato sulle specifiche che ha dato... :)
In generale, sono d'accordo. Io userei uno unix timestamp dentro un 
intero (signed) a 64bit.
Bye.

Warp10 ha scritto:

unix timestamp e via allora.... le 23 di oggi saranno ad es 1000 le 7 di 
domani mattina saranno 1000+(8ore*60min*60secondi) cos� la differenza la 
fai subito


Bah, basterebbe anche sommare 24 all'ora d'uscita, se e' minore dell'ora 
d'ingresso, prima del calcolo della durata del turno. Penso ci sia poca 
gente che lavora per piu' di ventiquattr'ore di fila, o perlomeno lo 
spero. :)


Grazie a tutti per le risposte.
Qualcuno ha "azzeccato" il mio problema, ossia creare uno "specchio di 
guardia" per un'associazione di volontariato, dove pu� capitare di 
entrare in servizio alle 19.00 ed uscire dal servizio alle 07.00 del 
giorno dopo (per un totale di 12.00 ore di servizio)
Ora abbiamo un pc con DB3 ed un'interfaccia molto "minimale" dove 
appunto, chi prende servizio si segna:
Nome, Cognome, giorno, ora di entrata ed ora di uscita (e relativi minuti).
Vorrei ottenere lo stesso risultato sfruttando PHP e MySQL.

 Ora abbiamo un pc con DB3 ed un'interfaccia molto "minimale"
cls
@ 0,0 say "Se mi dai ancora del minimale ti formatto"


in ext4 preferibilmente ;)


Hai azzeccato il problema.
Qualcuno mi indicherebbe la strada da "seguire" per cercare di farlo 
funzionare?
Grazie.

 funzionare?
Usa i timestamp UNIX.