Creare script per calcolo ore

data30

Nuovo Utente
8 Set 2015
7
0
0
Salve a tutti,
mi rivolgo in questo forum in quanto lo conosco già da un pò e mi ha risolto spesso dei problemi basilari di programmazione, aiutandomi spesso a capire le mie grossisime lacune, non sono certo un programmatore ma grazie questa community pian piano imparo qualcosa di nuovo.
Vi chiedo aiuto per risolvere uno script che vorrei realizzare con php e mysql.
Ho una tabella di nome orari e dei campi con nome inizio - fine - e durata.
Vorrei se sempre fattibile ottenere il tempo trascoroso in ore fra il timestamp campo inizio e il timestamp campo fine quindi salvare sul campo durata le ore trascorse fra campo inizio e fine. Ho letto in molte guide che si fa con timediff. Purtroppo non so bene come cominciare a generare il file php.
Se qualcuno di voi sa anche se minimo potrebbe farmi qualche esempio?
Vi ringrazio per l'attenzione.
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Ciao :)
Se il formato è YYYY-MM-DD HH:II:SS potresti dare un'occhiata a questa soluzione, non utilizza molte funzioni e quindi è semplice da capire.
Qualche indicazione:
-abs() ottiene il valore assoluto del parametro dato;
-strtotime() formatta un'indicazione di data e ora trasformandola in un timestamp UNIX;
-floor() arrotonda per difetto il parametro dato.

Altrimenti, possiamo adattarla in base a che formato data/ora utilizzi tu :)
 

data30

Nuovo Utente
8 Set 2015
7
0
0
Gentile programmatore la ringrazio per la l'attenzione che mi ha rivolto.
In pratica io uso due timestamp esempio:
inizio: 2015-09-08 16:16:00
fine: 2015-09-08 18:16:00
il risultato dovrebbe restituire 02:00 ore e deve andare a popolare il campo durata appartenente alla stessa tabella.
Grazie tanto dell'indicazione nell'attesa di altre proposte approfondisco gli argomenti che mi ha gentilmente indicato.
 

data30

Nuovo Utente
8 Set 2015
7
0
0
Credo in parte di aver risolto, lanciando la seguente query:
SELECT user_id, inizio, fine,
TIMEDIFF( fine, inizio ) AS DiffDate
FROM orari
mi fa perfettamente il calcolo delle ore anche a cavallo della mezzanotte.
adesso questo risultato lo vorrei inserire sul campo durata di tipo TIME, come deve essere impostata la query secondo voi?
 
Ultima modifica:

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Dopo aver notato che, salvando i risultati delle queries, si utilizzano meno risorse ma più spazio sul server, si potrebbe fare così:
Codice:
update orari set durata=
(SELECT user_id, inizio, fine, TIMEDIFF( fine, inizio ) AS DiffDate FROM orari)
Saluti :)
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Dopo aver notato che, salvando i risultati delle queries, si utilizzano meno risorse ma più spazio sul server, si potrebbe fare così:
Codice:
update orari set durata=
(SELECT user_id, inizio, fine, TIMEDIFF( fine, inizio ) AS DiffDate FROM orari)
Saluti :)

io sono poco pratico ma se devo aggiornare un valore perché la select me ne ritorna 4 ?
quale userà la "update" per giustappunto aggiornare il valore ?
poi quella select quale record aggiornerà ?
may be ...
PHP:
update orari set durata=TIMEDIFF( fine, inizio )
non mettendo nessuna clausola where verrà aggiornata l'intera tabella
nel caso "durata" sia "null" si può aggiungere
PHP:
update orari set durata=TIMEDIFF( fine, inizio ) where durata is null
limitando l'aggiornamento ai soli record che lo richiedono
ciao
Marino
 
Ultima modifica:

data30

Nuovo Utente
8 Set 2015
7
0
0
Salve ho avuto modo di provare le vostre soluzioni quella funzionante è quella del Sig. Marino.
Le mie prove sono state fatte dal pannello sql eseguendo la query.
Il passaggio che mi manca è scrivere la query sul file php in modo da riempire i relativi campi.
Ricapitolando lo script deve:
selezionare il campo inizio (Time) se il campo inizio è pieno allora riempire il campo fine (anch'esso Time) e aggiornare (Update) il campo durata.
Il campo durata, ho testato che funziona eseguendo la query:
update orari set durata=TIMEDIFF( fine, inizio ).
Qualche suggerimento di sintassi per iniziare?
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Ricapitolando lo script deve:
spero di aver capito la necessità,
ma sono poco d'accordo nel creare un nuovo script per aggiornare il campo durata,
nel mio pensiero quel valore non può essere omesso al momento dell'inserimento iniziale del record,
perché nel data base l'informazione risulta inconsistente
e se dovesse essere utilizzata prima del suo aggiornamento potrebbe produrre risultati altrettanto inconsistenti
quindi suggerisco di completare con il calcolo lo script che inserisce i records nel db
saluti
Marino
 

data30

Nuovo Utente
8 Set 2015
7
0
0
Ho ripreso a lavorare al mio progetto dopo qualche giorno di impegni vari.
Grazie a Marino51, con la sua soluzione ho risolto. Avrei un'altra necessità adesso.
Su un altra tabella mi ritrovo un campo COSTO e un campo DURATA di tipo (TIME 00:00:00).
In pratica devo calcolare il costo per la durata, esempio:
COSTO= 1.75
DURATA= 01:30:00
Facendo la query con la moltiplicazione ovviamente non funziona.
Non riesco a capire se devo convertire TIME oppure non serve.
Ho veramente cercato ovunque ma senza nessun risultato.
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
se non hai ancora risolto, questo è il mio suggerimento,

supponendo che il costo sia per ora (costo orario),
la durata deve essere convertita in ore prima del calcolo,
il modo, per me migliore, è rappresentato nel codice sottostante
ciao
Marino

PHP:
<?php
$COSTO= 1.75;
$DURATA = '21:30:10';
$hour = strtotime("1970-01-01".$DURATA."UTC")/3600;
$valore = $COSTO * $hour;
$valore = round($valore, 2, PHP_ROUND_HALF_UP);
echo "costo = ".$COSTO." - durata = ".$DURATA." - ore = ".$hour." - valore = ".$valore;
?>
 

data30

Nuovo Utente
8 Set 2015
7
0
0
Salve,
dopo un periodo di intenso lavoro riprendo il mio progetto che a piccoli passi sto portando avanti grazie a tutti voi che avete risposto, soprattutto a marino51 che ha reso il mio modo di esprimermi in un linguaggio di programmazione :)
Avrei necessità di un ulteriore consiglio.
In pratica devo fare una query che nella mia tabella inserisce su i campi A e B un TIMESTAMP.
Provo a spiegarmi meglio, quando premo un pulsante la query deve inserire sul campo A il TIMESTAMP, ma se lo trova già pieno deve inserirlo sul campo B.
Avreste qualche suggerimento? Devo lavorare forse con le strutture condizionali?
Grazie
 

data30

Nuovo Utente
8 Set 2015
7
0
0
Salve,
dopo un periodo di intenso lavoro riprendo il mio progetto che a piccoli passi sto portando avanti grazie a tutti voi che avete risposto, soprattutto a marino51 che ha reso il mio modo di esprimermi in un linguaggio di programmazione :)
Avrei necessità di un ulteriore consiglio.
In pratica devo fare una query che nella mia tabella inserisce su i campi A e B un TIMESTAMP.
Provo a spiegarmi meglio, quando premo un pulsante la query deve inserire sul campo A il TIMESTAMP, ma se lo trova già pieno deve inserirlo sul campo B.
Avreste qualche suggerimento? Devo lavorare forse con le strutture condizionali?
Grazie
Ormai stremato sono arrivato alla conclusione di utilizzare per il campo A un insert e per il campo B un Update.
Naturalmente mi sarò spiegato male provo a riformulare il tutto.
In una tabella ho le seguenti colonne:
Id - chiave primaria
User - Nome utente
Start - CURRENT_TIMESTAMP
Fine - CURRENT_TIMESTAMP con l'attributo "on update CURRENT_TIMESTAMP"
Durata - NULL
La query che vorrei realizzare deve selezionare User se Durata è NULL e quindi fare Update su colonna Fine.
Ho provato con le strutture condizionali, anche con i trigger ma non ne vengo a capo nella costruzione della query.
Qualche suggerimento?
Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
S Consigli per script javascript per creare videogiochi Javascript 2
P Supporto per creare uno script "Add Cart" Offerte e Richieste di Lavoro e/o Collaborazione 7
Shyson Script per creare fotogallery Webdesign e Grafica 0
K creare uno script in php , per generare in modo automatico query PHP 2
andreas88 script per creare un calendario Webdesign e Grafica 8
riminese77 Script per creare siti web con tutorial interno CMS (Content Management System) 5
A Come Creare Script In Automatico Per Gestione Db Presenta il tuo Sito 0
S Script per creare Email in PHP PHP 1
A Script (da modificare) per creare Schede su Nazioni PHP 3
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
B [PHP] hp script creare un utente diminuendo -1 e cosi via PHP 1
R [PHP] [HTML] Creare script invio modulo contatti PHP 2
L Creare script ranking PHP 0
F Script PHP + MySql - immettere dati e creare un documento Word o PDF PHP 4
C Dovrei creare un piccolo script che mi comunichi che questo è stato eseguito PHP 4
A GoGo Voglio creare un sito come ustream.tv, dove posso trovare uno script come ustream.tv? Discussioni Varie 0
C Creare uno script che fa comparire immagini casuali sul sito Javascript 16
R Creare pagina HTML da script PHP PHP 2
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1
MarcoGrazia Creare una password Snippet Javascript 0
J creare pagina php di prenotazione PHP 5
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
INTEROPERABILITY Sviluppatrice/formatrice creare APP Offerte e Richieste di Lavoro e/o Collaborazione 0
L Creare una pagina pre-home WordPress 1
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L creare oggetti da una classe tramite un form Javascript 0
Web93 CREARE SITO WEB COMICS CON WORDPRESS WordPress 0
maxnegri Contare sessioni aperte e creare condizione PHP 1

Discussioni simili