quanto manca o quanto trascorso da una data

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
piccola funzione che calcola quanto è passato o quanto manca da una data imposto alla data attuale
PHP:
<?php
function intero($v){//per essere sicuro che i valori per mktime siano degli interi
		return (int)$v;
	}
function intervallo($data){
	//LA DATA DEVE ESSERE IN FORMATO Y m d (anno mese giorno) con o senza H i s
	//indipendente dagli usuali separatori
	//riduco la data ad un solo separatore
	$pat=array('/ /','/\//','/:/','/\./');//separatori più comuni
	$data=preg_replace($pat, '-', $data);
	$d=explode("-", $data);//$d[0]=>"Y", $d[1]=>"m",$d[2]=>"d",$d[3]=>"H",$d[4]=>"i",$d[5]=>"s"
	$d=array_map("intero",$d);
	//qui si potrebbero mettere delle verifiche sulla correttezza della data
	//soprattutto se la data proviene da un campo di input di un form es.
	if(!checkdate($d[1],$d[2],$d[0])){
		return " data non corretta ";
	}
	//potrebbero comunque mancare uno o piu dei H:i:s
	//comunque li forzo
	if(!isset($d[3]) || ($d[3]<0 || $d[3]>23)){$d[3]=0;}
	if(!isset($d[4]) || ($d[4]<0 || $d[4]>59)){$d[4]=0;}
	if(!isset($d[5]) || ($d[5]<0 || $d[5]>59)){$d[5]=0;}
	//trasformo la data in timestamp
	$data=mktime($d[3],$d[4],$d[5],$d[1],$d[2],$d[0]);
	$data_ora=time();//data attuale in timestamp
	//si potrebbe mettere la verifica se $delta è maggiore o minore di zero
	//in modo da avere o "passate" o "mancano"
	$quando= " da ";
	$delta=$data_ora-$data;//intervallo
	if($delta < 0){$quando = " tra ";}
	$delta=abs($delta);
	//calcolo giorni
	$giorni=(int)($delta/(24*3600));
	$avanzo=$delta%(24*3600);//resto in secondi
	//calcolo ore
	$ore=(int)($avanzo/3600);
	$avanzo=$avanzo%3600;//resto in secondi
	//calcolo minuti
	$minuti=(int)($avanzo/60);
	//se trascorso meno di un minuto dico adesso
	if($giorni==o && $ore==0 && $minuti==0){
		return " adesso ";
	}
	$passato="";
	if($giorni > 0){
		$passato.=" $giorni<sup>gg</sup> ";
	}
	if($ore > 0){
		$passato.=" $ore<sup>h</sup> ";
	}
	if($minuti > 0){
		$passato.=" $minuti<sup>m</sup> ";
	}
	return " $quando ".$passato;
}
//***TEST******
$data_post=array("2013-2-31 09:50:33","2013-10-16 13:50:33","2013/10-14 21:49.07","2013/10-14 21:49","2013/10-14 21","2013-10-25 09:50:33","2013/10-14");
foreach($data_post as $val){
echo "post del $val:&nbsp;&nbsp;&nbsp;";
echo "post pubblicato".intervallo($val)."<br />";
}
?>

output
post del 2013-2-31 09:50:33: post pubblicato data non corretta
post del 2013-10-16 13:50:33: post pubblicato da 2gg 15m
post del 2013/10-14 21:49.07: post pubblicato da 3gg 16h 16m
post del 2013/10-14 21:49: post pubblicato da 3gg 16h 16m
post del 2013/10-14 21: post pubblicato da 3gg 17h 5m
post del 2013-10-25 09:50:33: post pubblicato tra 6gg 19h 44m
post del 2013/10-14: post pubblicato da 4gg 14h 5m
 
Discussioni simili
Autore Titolo Forum Risposte Data
borgo italia quanto manca Javascript 6
MarcoGrazia schema.org quanto è utile in ottica SEO e SEM ? SEO e Posizionamento 4
Z Gestionale in Php/mysql: Quanto farsi pagare? Aiuto! Discussioni Varie 0
W Contenuto duplicato su più siti web, quanto è permesso? SEO e Posizionamento 1
S quanto puo valere Vendere e Acquistare pubblicita' online 1
Guaroste14 Aiuto perfavore! Quanto vale.. Altri Annunci 0
4potere Quanto pagare ad uno studente per i testi in ottica seo per il sito? SEO e Posizionamento 2
M Voi siete soddisfatti di quanto guadagnate nel mondo ICT? Discussioni Varie 13
L Quanto durerà ancora il flash player? Flash 4
M Mappa immagine...vi prego è urgente, devo farlo quanto prima HTML e CSS 5
I Quanto chiedere per un sito web? Discussioni Varie 5
B quanto costa un hosting Hosting 0
G Freelancer: quanto costa aprire e mantenere la partita IVA? Discussioni Varie 3
L Quanto si guadagna Offerte e Richieste di scambio links 5
M Effettuare i controlli di obbligatorietà lato server e, per quanto possibile, di tipo. PHP 0
G Quanto "vale" un sito come questo? Discussioni Varie 6
C Espansione RAM con massimo rispetto a quanto dichiarato dal produttore Hardware 1
V PHP - Guide e quanto è indispensabile? PHP 6
Jonn Valore sito web Joomla, quanto può costare? Joomla 2
YellowMan Quanto guadagnate al mese con Adsense? Google AdSense 1
voldemort Dominio .xxx - quanto costa? dove registrarlo? Domini 4
borgo italia quanto vale il mio sito Discussioni Varie 0
M Come faccio ad aprire una Partita IVA e quanto cosa? Leggi, Normative e Fisco 1
D Piccole grandi informazioni. Come e quanto farsi pagare? Guadagnare col Sito 2
S Quanto c'entra la matematica con questi linguaggi? HTML e CSS 4
J Quanto chiede in media un webmaster per un sito web statico?? Guadagnare col Sito 1
I Quanto Piace il Tuo Sito Web ? Presenta il tuo Sito 0
S Fino a quanto durerá il supporto di Microsoft ad ASP? Classic ASP 3
borgo italia quanto lo valutate Discussioni Varie 6
T Quanto tempo occorre per essere attivi? Supporto Mr.Webmaster 1
L Quanto costa la pubblicità? Discussioni Varie 11
K Valutazione dominio: quanto può valere sito internet? Domini 3
fulvio quanto devo chiedere? Altri Annunci 6
A Aiuto- Quanto vale il mio sito? Guadagnare col Sito 1
G Quanto chiedere?? Webdesign e Grafica 3
M Quanto costa essere primi nei motori di ricerca SEO e Posizionamento 1
PoLe Quanto siamo "piccoli"? Discussioni Varie 7
R Quanto attivate il mio scambio linK? Supporto Mr.Webmaster 3
S Quanto dura? Discussioni Varie 1
C Quanto Puo' Essere Lunga Una Pagina Web. Discussioni Varie 4
F Ma l'attivazione... quanto ci vuole? Supporto Mr.Webmaster 1
F logo.... ma quanto sono incapace!!! Webdesign e Grafica 13
S Costo Campagna pubblicitaria in CnW: Quanto? Guadagnare col Sito 6
jan267 Quanto fa pena Fastweb da 1 a 10 ? Discussioni Varie 7
N Ma quanto costa Dreamweaver?!? HTML e CSS 6
B Basic4Android manca il file aapt.exe Sviluppo app per Android 0
Y [AjaxControlToolKit] ComboBox NullReferenceException dopo postback/manca ComboBox.cs Ajax 0
dynamicdevotion htaccess, e se manca una variabile GET? Web Server 2
borgo italia se vi manca il rolex Discussioni Varie 3
borgo italia una volta manca il martello.... Discussioni Varie 4

Discussioni simili