Confronto tra due date in italiano

colomber

Utente Attivo
4 Dic 2012
232
1
18
ho due date in italiano:

8 giugno

9 giugno


devo confrontarle e il risultato deve essere che 9 giugno è maggiore di 8 giugno come faccio?


grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
devi prima trasformare quella stringa in una data valida per php e poi usare il timestamp per confrontarle
puoi provare cosi
PHP:
<?php

function formatta_data($data) {

    $mesi = array('gennaio' => '01', 'febbraio' => '02', 'marzo' => '03',
        'aprile' => '04', 'maggio' => '05', 'giugno' => '06',
        'luglio' => '07', 'agosto' => '08', 'settembre' => '09',
        'ottobre' => '10', 'novembre' => '11', 'dicembre' => '12');

    $split = explode(" ", $data);

    return date('Y') . "-" . $mesi[$split[1]] . "-" . str_pad($split[0], 2, '0', STR_PAD_LEFT);
}

function confronto_date($data1, $data2) {
    $d1 = new DateTime(formatta_data($data1));
    $d2 = new DateTime(formatta_data($data2));
    if ($d1->getTimestamp() > $d2->getTimestamp()) {
        return $data1;
    }
    return $data2;
}

echo confronto_date("9 giugno", "8 giugno");
?>
basta che la stringa abbia sempre la stessa struttura
 

colomber

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


Fatal error: Call to undefined method DateTime::getTimestamp()
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
sembra che tu non abbia una versione aggiornata di php vedi il manuale
in alternativa puoi usare la funzione mktime che ti restituisce sempre il timestamp
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
ma non si può convertire 8 giugno in 8 june e 9 giugno in 9 june e poi fare il confronto?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non conosco funzioni php che fanno calcoli su una data in formato stringa, se esistono ben venga
lo stesso esempio con mktime()
PHP:
<?php

function formatta_data($data) {

    $mesi = array('gennaio' => '01', 'febbraio' => '02', 'marzo' => '03',
        'aprile' => '04', 'maggio' => '05', 'giugno' => '06',
        'luglio' => '07', 'agosto' => '08', 'settembre' => '09',
        'ottobre' => '10', 'novembre' => '11', 'dicembre' => '12');

    $split = explode(" ", $data);

    return date('Y') . "-" . $mesi[$split[1]] . "-" . str_pad($split[0], 2, '0', STR_PAD_LEFT);
}

function confronto_date($data1, $data2) {

    $d1 = explode("-", formatta_data($data1));
    $d2 = explode("-", formatta_data($data2));

    $x1 = mktime(0, 0, 0, $d1[1], $d1[2], $d1[0]);    
    $x2 = mktime(0, 0, 0, $d2[1], $d2[2], $d2[0]);

    if ($x1 > $x2) {
        return $data1;
    }
    return $data2;
}

echo confronto_date("9 giugno", "8 giugno");
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
puoi provare anche così
PHP:
<?php
function confronto_date($data1, $data2) {
	$mesi = array('gennaio' => '01', 'febbraio' => '02', 'marzo' => '03',
                'aprile' => '04', 'maggio' => '05', 'giugno' => '06',
                'luglio' => '07', 'agosto' => '08', 'settembre' => '09',
                'ottobre' => '10', 'novembre' => '11', 'dicembre' => '12');
	$split1 = explode(" ", $data1);
	$split2 = explode(" ", $data2);
	//le seguenti due righe calcolano il timestamp confrontando i due interi
	$d1=mktime(0,0,0,$mesi[$split1[1]],str_pad($split1[0], 2, '0', STR_PAD_LEFT),date('Y'));
	$d2=mktime(0,0,0,$mesi[$split2[1]],str_pad($split2[0], 2, '0', STR_PAD_LEFT),date('Y'));
	/*oppure queste due confrontando le stringhe formattate YY-mm-dd
	$d1=date('Y') . "-" . $mesi[$split1[1]] . "-" . str_pad($split1[0], 2, '0', STR_PAD_LEFT);
	$d2=date('Y') . "-" . $mesi[$split1[1]] . "-" . str_pad($split2[0], 2, '0', STR_PAD_LEFT);
	secondo me puoi usare o uno dei due metodi indifferentemente
	*/
	if($d1>$d2){
		return "$data1 ".date('Y');//se non ti serve l'anno togli il .date('Y')
	}else{
		return "$data2 ".date('Y');
	}
}
echo confronto_date("9 giugno", "18 giugno");
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
carter Confronto tra due date MySQL 14
A [ASP] Confronto tra dati Form e DB Classic ASP 2
M [MySQL] Confronto tra variabile varchar e variabile data. PHP 1
C Confronto tra date PHP 3
A Confronto tra date in sql c# ASP.NET 4
Monital [Mysql]Confronto tra tabelle ed inseirmento dati- Comando JOIN (Credo) MySQL 0
S Flash: confronto tra xml Flash 1
M Confronto tra database Classic ASP 4
SolidSnake4 confronto tra date PHP 2
L confronto tra date Javascript 3
A confronto tra stringhe complesse, come fare???? PHP 1
mitzi confronto tra campi Javascript 10
G array_diff - confronto su 2 indici PHP 2
A [PHP] registrazione utente in un database sql con confronto PHP 1
D [PHP] Confronto valore negativo PHP 4
M [PHP] confronto datetime PHP 2
Albesus [PHP] Confronto input con tabella e risultato PHP 10
E [PHP] Operazioni di confronto su stringhe PHP 26
P [MYSQL] SELECT di ..CONFRONTO MySQL 0
T select record univoco dopo confronto di due tabelle MySQL 2
L confronto dati immessi con database PHP 1
J Confronto Date PHP - MySQL PHP 1
B Mostra/nascondi option su confronto datepicker PHP 0
matteoraggi Confronto prezzi per transfer aeroportuali Presenta il tuo Sito 0
D problema con confronto dati PHP 3
Z Confronto con siti concorrenti, SEO e testo landing page SEO e Posizionamento 2
L Confronto su tabelle PHP 3
G confronto dati PHP 2
A Problema con sottrazione e confronto PHP 3
T Problema: Confronto date con Mysql PHP 3
A Confronto orari in variabili e operazioni PHP 1
R problema confronto fra date PHP 2
D SIti confronto prezzi SEO e Posizionamento 3
F Confronto ora del giorno PHP 1
davide1982 Confronto di indirizzi ip nello stesso campo di una tabella Database 1
I Confronto con url PHP 2
S query confronto tabelle MS Access 0
D Wordpress e confronto testo commenti duplicati WordPress 4
M [VBA/EXCEL]Confronto colonne e stampa riga Visual Basic 0
P Confronto due colonne excel Windows e Software 0
M [MySQL] confronto fra date Database 1
L Controllo e confronto dati immessi in 2 campi Data in un form (mysql) PHP 1
M confronto valori select Javascript 2
U Salvataggio IP e confronto col database PHP 1
G Confronto servizi hosting Hosting 0
M Confronto Hosting Hosting 27
N Confronto fra memorie RAM e fra schede video Hardware 0
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

Discussioni simili