Lavorare con le date in PHP è una di quelle cose su cui o hai una buona padronanza, stai lavorando per capire o sei bloccato nella tana del coniglio della documentazione che è nel manuale.
Se stai lavorando con WordPress, però, la possibilità che tu abbia bisogno di lavorare con le date è piuttosto alta. Quasi tutto ciò che pubblichiamo ha almeno una data associata.
Ciò include post, pagine, tipi di post personalizzati, revisioni, bozze e così via.
Inoltre, c’è la possibilità che il lavoro personalizzato con cui devi sviluppare richieda di trovare la differenza in due date usando PHP. E sebbene ci siano molti modi per farlo, c’è un processo che ho seguito per qualcosa.
La differenza nelle date usando PHP
Prima di esaminare il mio esempio, sarà utile fornire un po’ di contesto. Dopotutto, qualunque cosa tu stia lavorando sarà probabilmente un po’ diversa da quella che sto facendo io.
L’idea generale potrebbe essere sempre la stessa, quindi l’essenza di ciò che stai facendo può ancora essere estrapolata dal codice seguente. Ma permettetemi di fare un esempio concreto tratto dal mio stesso lavoro:
- Ho un tipo di post personalizzato che rappresenta un evento e l’evento come data di pubblicazione.
- Devo sapere quando inizia l’evento. Per fare ciò, definisco il formato della data utilizzando il formato n/j/Y come supportato da PHP e quindi lo converto in una data utilizzando la funzione data di PHP .
- Successivamente, prendo la data odierna (come un modo semplice per determinare la differenza di date utilizzando PHP per questo esempio) e la converto in una data utilizzando la stessa funzione e il formato n/j/Y.
- Successivamente, creo un’istanza di due oggetti DateTime e calcolo la differenza.
Se ciò non è semplice, ti consiglio di fare clic sui collegamenti sopra. Altrimenti, ecco il codice.
<?php
/**
* Determines the number of years that exist between the specified
* event custom post type and today's date.
*
* @access private
* @param WP_Post $event A custom post type representing an event.
* @return string $years The difference in years.
*/
private function get_difference_in_dates( $event) {
// If the post_date is empty, why are we here?
if (empty( $event['post_date']) {
return;
}
// Get the date for the start of the event and te
$start = date( 'n/j/Y', strtotime( $event['post_date']) );
$today = date( 'n/j/Y' );
// Get the date for the start of the event and today's date.
$start = new DateTime( $start );
$end = new DateTime( $today );
// Now find the difference in years.
$difference = $start->diff( $end );
$years = $difference->y;
// If the difference is less than one, we'll return a string of "< 1".
$years = (1 > $years )? '< 1': (string)$years;
return $years;
}
Avviso nel codice sopra sono interessato solo a recuperare la differenza in anni. Puoi scegliere di scegliere qualcosa di diverso. In tal caso, l’API offerta da PHP semplifica l’operazione esaminando le proprietà dell’oggetto DateTime.
Ma date due date, questo è un modo semplice per trovare la differenza di date usando PHP nel contesto di WordPress.
