Ciao a tutti ho una dataFine che prendo da mysql in formato DATE, devo controllare se sono passate le 16 di quella data fine.
qualche suggerimento?
grazie e buon ferragosto.
ciao
![]()
Ciao a tutti ho una dataFine che prendo da mysql in formato DATE, devo controllare se sono passate le 16 di quella data fine.
qualche suggerimento?
grazie e buon ferragosto.
ciao
![]()
Codice PHP:
//Il campo del DB presumo sia in formato aaaa-mm-gg
$data = "2016-08-16";
//Divido gli elementi della data
$exp_data = explode("-", $data);
//Trovo il timestamp della data alla mezzanotte
$ts_data = mktime("00", "00", "00", $exp_data[1], $exp_data[2], $exp_data[0]);
//Divido gli elementi della data attuale
$exp_data_oggi = explode("-", date("m-d-Y-H-i-s"));
//Trovo il timestamp della data attuale
$ts_attuale = mktime($exp_data_oggi[3], $exp_data_oggi[4], $exp_data_oggi[5], $exp_data_oggi[0], $exp_data_oggi[1], $exp_data_oggi[2]);
//Se sono passati 57600 secondi (16 ore)
if(($ts_attuale - $ts_data) > 57600)
{
print "Tempo scaduto";
}
Usando l'oggetto DateTime e DateInterval:
Con l'oggetto DateInterval puoi sapere quanti anni, mesi, giorni,ore, minuti e secondi sono passati tra due date.codice:$dataMysql = '2016-08-26'; $format = 'Y-m-d'; $datetime1 = DateTime::createFromFormat($format, $dataMysql); $datetime2 = new DateTime(); $interval = $datetime2->diff($datetime1); var_dump($interval); //Ecco l'uscita dell'oggetto $interval object(DateInterval)[64] public 'y' => int 0 public 'm' => int 0 public 'd' => int 0 public 'h' => int 11 public 'i' => int 1 public 's' => int 2 public 'weekday' => int 0 public 'weekday_behavior' => int 0 public 'first_last_day_of' => int 0 public 'invert' => int 1 public 'days' => int 0 public 'special_type' => int 0 public 'special_amount' => int 0 public 'have_weekday_relative' => int 0 public 'have_special_relative' => int 0
Tieni conto che l'esempio dà per scontato che il fuso orario sia lo stesso!