Differenza tra due ore

colomber

Utente Attivo
4 Dic 2012
232
1
18
Ho due orari devo trovare la differenza in ore e minuti.

PHP:
$primo = "16:49";
$secondo = "07:37":

$differenza= $primo - $secondo;


in questo modo il risultato é 9 ore ma non vengono presi in considerazione i minuti.


conoscete qualche funzione che compie questa operazione in modo completo?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Datetime is the way
PHP:
$primo = "16:49"; 
$secondo = "07:37"; 

$differenza= date_diff(date_create($primo),date_create($secondo)); 

echo $differenza->format("Ore: %H, Minuti: %i");
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
Ciao mi da questo errore:

Fatal error: Call to undefined function date_diff()


la mia versione di php é la 5.2 per cui la funzione é supportata

date_diff (PHP 5 >= 5.3.0)
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Datetime è supportata dalla 5.3, cioè la versione tutt'ora più valida del php


PS:
date_diff (PHP 5 >= 5.3.0)
Significa maggiore o uguale alla versione 5.3 del PHP5 :rolleyes:
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
Datetime è supportata dalla 5.3, cioè la versione tutt'ora più valida del php


PS:
date_diff (PHP 5 >= 5.3.0)
Significa maggiore o uguale alla versione 5.3 del PHP5 :rolleyes:



non esistono altre funzioni che fanno lo stesso lavoro e che sono supportate da php 5.2?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
fatti una funzione del genere
PHP:
<?php
function differanza_data($prima,$seconda){
	//funzia se il separatore è : altrimenti modificare
	$p=explode(":", $prima);
	$s=explode(":", $seconda);
	$diff_sec=($p[0]*60 + $p[1])-($s[0]*60 + $s[1]);
	$dif_minuti=(int)($diff_sec/60);
	$dif_secondi=abs((int)($diff_sec%60));
	return "$dif_minuti:$dif_secondi";
}
//test****
$primo = "16:49"; 
$secondo = "07:37";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";

$primo = "07:37"; 
$secondo = "16:49";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";
$primo = "15:37"; 
$secondo = "16:22";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";
?>
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
La funzione é buona unico problema sono il formato dei minuti.

ad esempio 15 ore e 3 minuti esce fuori così:

15:3

potrebbe essere confuzo con 15 ore e 30 minuti, sarebbe meglio 15:03
 

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
147
5
18
Roma
La funzione é buona unico problema sono il formato dei minuti.

ad esempio 15 ore e 3 minuti esce fuori così:

15:3

potrebbe essere confuzo con 15 ore e 30 minuti, sarebbe meglio 15:03

Immagino che rispondo con un po di ritardo, ma prova ad modificare la funzione

PHP:
function differanza_data($prima,$seconda){ 
    //funzia se il separatore è : altrimenti modificare 
    $p=explode(":", $prima); 
    $s=explode(":", $seconda); 
    $diff_sec=($p[0]*60 + $p[1])-($s[0]*60 + $s[1]); 
    $dif_minuti=(int)($diff_sec/60); 
    $dif_secondi=abs((int)($diff_sec%60)); 
    $dif_minuti=($dif_minuti<10 ? "0" : "").$dif_minuti;
    $dif_secondi=($dif_secondi<10 ? "0" : "").$dif_secondi;
 
    return "$dif_minuti:$dif_secondi"; 
}

Fammi sapere:fonzie:
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
praticamente faccio una cosa di questo tipo ho due orari in formato timestap, li converto in orari normali, poi passo i due orari comprensivi di secondi alla funzione ho modificato la funzione in questo modo aggiungendo i secondi

return "$dif_minuti:$dif_secondi:$dif_secondi";


la differenza tra orari ore e minuti funziona tra secondi invece risulta errata


$a = date('H:i:s', $timestampa);
$b = date('H:i:s', $timestampb);

echo differanza_data($a,$b);
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa una cosa che non ho capito:
tu immetti due tempi espressi in H.i:s e sin qui ci siamo il risultato della differenza deve essere espresso
in i:s (minuti e secondi)
oppure in H:i:s (ore minuti e secondi) ?
seconda cosa le due ore sono dello stesso giorno?
questo perchè se la prima data è minore della seconda es. 07:00:00 e 08:00:00 si intende generalmente dello stesso giorno e la differenza è 60:00,
ma se la prima è 08:00: e la seconda 07:00:00 la seconda si intende del giorno dopo quindi la differenza è 1380:00
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
confronto ore minuti secondi con ore minuti secondi, comunque sono ore dello stesso giorno, ma a me interessano solo le ore

borgo fai con calma quando hai tempo.


grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dimmi se ti va bene
PHP:
<?php
function differanza_data($prima,$seconda){
    //funzia se il separatore è : altrimenti modificare H:i:s  ore:minuti:secondi
    $p=explode(":", $prima);
    $s=explode(":", $seconda);
	$prima_sec=$p[0]*60*60 + $p[1]*60 + $p[2];
	$seconda_sec=$s[0]*60*60 + $s[1]*60 + $s[2];
	$diff_sec=abs($prima_sec - $seconda_sec);
	$dif_ore=(int)($diff_sec/3600);//3600= 60*60
	$resto=$diff_sec-$dif_ore*3600;
	$dif_minuti=(int)($resto/60);
	$dif_secondi=abs($diff_sec-$dif_ore*3600-$dif_minuti*60);
	$dif_ore=($dif_ore<10 ? "0" : "").$dif_ore;
	$dif_minuti=($dif_minuti<10 ? "0" : "").$dif_minuti;
    $dif_secondi=($dif_secondi<10 ? "0" : "").$dif_secondi; 
    return "$dif_ore:$dif_minuti:$dif_secondi";
}
//test****
$primo = "07:37:00";
$secondo = "08:37:00";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";
$primo = "07:37:00";
$secondo = "08:27:00";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";
$primo = "07:37:00"; 
$secondo = "08:27:25";
echo "diferenza tra $primo e $secondo = ".differanza_data($primo,$secondo)."<br />";
?>
output
diferenza tra 07:37:00 e 08:37:00 = 01:00:00
diferenza tra 07:37:00 e 08:27:00 = 00:50:00
diferenza tra 07:37:00 e 08:27:25 = 00:50:25

guarda che, come hai detto, ho considerato che le due ore siano sempre dello stesso giorno
cioè indifferente che tu metta prima es. 08:27:25 e poi 07:37:00 oppure 07:37:00 08:27:25
 
Discussioni simili
Autore Titolo Forum Risposte Data
M PHP Arrotondamento minuti in differenza tra due Orari PHP 9
V Calcolare la differenza tra due date in PHP PHP 1
E Query differenza tra tabelle MySQL 5
A differenza tra account email e ISP presenti in blacklist Posta Elettronica 0
W Differenza tra orari PHP 3
Gabriele Visioli Differenza tra hosting e hosting WordPress Hosting 4
S Differenza tra le funzioni include () e require ()? PHP 1
U [PHP] Differenza tra amministratore e utente PHP 2
V [PHP] Differenza reale tra bindParam e bindValue PHP 8
Z Google: qual'è la differenza tra Popolarità e Autorevolezza di un sito? SEO e Posizionamento 1
M Qual'è la differenza tra Server.Transfer e Response.Redirect? ASP.NET 1
Giacomo92 Differenza tra Webmaster e Web designer? Webdesign e Grafica 2
V Differenza tra operatori == e === in javascript? Javascript 1
felino [C#] Differenza tra ClipboardPasted e ClipboardPasting .NET Framework 2
F differenza tra 2 date PHP 5
M Calcolare differenza temporale tra datetime salvati sui records di una tabella mysql PHP 18
Monital Differenza tra int smallint etc. Database 5
A Differenza tra anteporre o posporre l'operatore di incremento nel ciclo for Javascript 5
PenguinLover Differenza tra detrazioni e deduzioni? Leggi, Normative e Fisco 3
Monital Differenza tra date PHP 8
YellowMan Differenza tra Server Virtuale e Cloud Server Cloud Computing e Cloud Server 1
M Differenza tra precision e scale PHP 2
novello88 Differenza tra include() e require() PHP 18
M [VB.Net] Che differenza c'è tra CType e DirectCast? ASP.NET 1
S Differenza tra queste righe di codice Javascript 2
S Differenza tra orari sballata! PHP 2
M Differenza tra richiesta sincrona e asincrona Ajax 0
emanuelevt differenza tra $array[]='valore' o array_push($array,'valore') PHP 2
emanuelevt differenza concreta tra array_rand e shuffle PHP 2
SolidSnake4 differenza tra sleep() e microtime() PHP 9
M Differenza tra date e countdown PHP 3
M Differenza tra valori sulla stessa colonna Database 10
A Differenza comportamento tra click mouse e pressione tasto invio Visual Basic 0
borgo italia differenza tra applet e script? Javascript 10
I Differenza tra blog e sito Webdesign e Grafica 12
E Differenza tra utenti e hits [Era: Statistiche accessi al sito] Discussioni Varie 2
B Che differenza c'è tra un sito professionale e uno no ? Webdesign e Grafica 7
V Differenza di visualizzazione tra IE e FireFox HTML e CSS 4
S Differenza date record successivi MS Access 7
T differenza fra mysql xampp e un mysql server Database 0
Emix [PHP] Differenza Date + Ore PHP 3
S [PHP] Eseguire differenza su dati SQL presenti sulla stessa colonna PHP 1
K Certificato SSL (https) gratuito o a pagamento? che differenza c'è? Server Dedicati e VPS 1
andrea.peo Calcolo differenza fra record attivo e precedente PHP 1
G Calcolo differenza valori provenienti da una tabella PHP 0
giap Classi stili/stili per singoli TAG- differenza- HTML e CSS 2
S Differenza data PHP 1
C Ma perchè!!!! Differenza visualizzazione con iOS Safari HTML e CSS 2
Shyson Differenza UTF-8 e gli altri HTML e CSS 12
L Reale differenza con il precedente HTML HTML e CSS 1

Discussioni simili