[PHP] Contare i mesi con timestamp.

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
Ciao a tutti...
in una applicazione Laravel ogni qualvolta io entro in un record per fare un aggiornamento e poi salvo , si aggiorna in automatico nel database il TIMESTAMP created_at. Bene...
il timestamp è cosi stampato, esempio (2019-03-05 21:26:58).....
Vorrei ora contare 4 mesi da quel timestamp e ricevere quindi un azione.
Esempio :

$ladata = $row->updated_at + 4mesi;
if($row->updated_at > $ladata) {
$style = 'bg-warning';
} else {
$style = '';
}

cosi che quando la data sarà scaduta il background di quella parte del DOM diventa rosso.
Grazie a tutti
 

macus_adi

Utente Attivo
5 Dic 2017
1.126
64
48
IT/SW
potresti provare con
PHP:
$back_color='bg-default';
$data_created_on=strtotime($result->created_at);
if($data_created_on<(time()-(3600*24)*120))$back_color='bg-warning';
In alternativa
PHP:
if(!function_exists('diff_date')){
   function diff_date($dt1,$dt2,$format='%Y-%m-%d %H:%i:%s'){
      $d1=new DateTime($dt1);
      $d2=new DateTime($dt2);
      return $d2->diff($d1)->format($format);
   }
}
$data1='2019-01-31 00:00:00';
$data2='2019-02-28 13:56:41';
print_r(diff_date($data1,$data2,"Giorni %d, Ore %H"));
[/PHP}
 
Ultima modifica:

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
grazie. prezioso codice, me li salvo perché mi sono utili.
Mi è venuto in mente anche questo:

Se creassi un campo input type date e inserissi la data del previsto rientro (4mesi) come varchar poi potrei fare il confronto con la funzione date(), tipo:

$mesi = '06-03-2019';
$data = date('d-m-Y');

if($mesi >= $data){
$colore = 'bg-danger';
} else {
$colore = '';
}

Cmq se gli và di inserire questo campo di previsto rientro vado per questa. Se invece no provo con il tuo codice. Grazie.

P.s il timestamp stampa cosi (2019-03-05 21:26:58).. strtotime vede lo spazio tra data e ora, non è che vuole solo la data?
 

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
ok grazie.. io l ho scritto manualmente per la prova del codice ecco perché.. grazie del tuo aiuto!
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.007
295
83
@Phelps
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
o il tag
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti


Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
 

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
Pardon.. Leggendolo oggi e riusando il forum l'anno prossimo, si può dimenticare. Sorry, cercherò di imprimerlo bene. Grazie saluti.
 

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
differenza tra due date..
Ciao domando un' alta cosa.

Ho questo

PHP:
//Questa mi stampa la data odierna tipo 2019-03-24
$today = date("Y/m/d");
//Questa è un Varchar che con input date HTML memorizza la data sempre così : 2019-03-24
$date2 = $publisher->uscita; //proviene da database
Come posso fare la differenza tra le date?
Esempio data odierna $today - $date2.. Vorrei avere come risultato sono passati esempio un mese!
Sò che date_diff si aspetta due dateTime. Se si possono convertire $today e $date2..
Come posso fare?
Grazie
 

Phelps

Nuovo Utente
17 Dic 2018
46
0
6
Scusate rispondo avendo trovato la soluzione, tra l'altro già indicata in parte da macus

PHP:
                    $today = date("Y/m/d");
                    $date2=date_create($today);
                    $date1=date_create($publisher->uscita);
                    $diff=date_diff($date1,$date2);
                    $gap = $diff->format("%m Mesi e %d Giorni");