Trouvez la différence de dates en utilisant PHP (et WordPress)
Travailler avec des dates en PHP est l’une de ces choses que vous maîtrisez bien, que vous travaillez sur la compréhension ou que vous êtes coincé dans le trou du lapin de la documentation qui se trouve dans le manuel.
Si vous travaillez avec WordPress, cependant, la probabilité que vous ayez besoin de travailler avec des dates est assez élevée. Presque tout ce que nous publions est associé à au moins une date.
Cela inclut les publications, les pages, les types de publication personnalisés, les révisions, les brouillons, etc.
De plus, il est possible que le travail personnalisé avec lequel vous devez développer nécessite que vous trouviez la différence entre deux dates à l’aide de PHP. Et bien qu’il existe plusieurs façons de procéder, il y a un processus que j’ai suivi pour quelque chose.
La différence de dates avec PHP
Avant de parcourir mon exemple, cela aidera à donner un peu de contexte. Après tout, tout ce sur quoi vous travaillez sera probablement un peu différent de ce que je fais.
L’idée générale peut toujours être la même, de sorte que l’essentiel de ce que vous faites peut toujours être extrapolé à partir du code ci-dessous. Mais permettez-moi de donner un exemple concret tiré de mon propre travail :
- J’ai un type de publication personnalisé représentant un événement et l’événement en tant que date de publication.
- J’ai besoin de savoir quand l’événement commence. Pour ce faire, je définis le format de date en utilisant le format n/j/Y tel qu’il est pris en charge par PHP, puis je le convertis en une date à l’aide de la fonction date de PHP .
- Ensuite, je prends la date d’aujourd’hui (comme un moyen facile de déterminer la différence de dates en utilisant PHP pour cet exemple) et je la convertis en une date en utilisant la même fonction et le même format n/j/Y.
- Après cela, j’instancie deux objets DateTime et calcule la différence.
Si ce n’est pas simple, je vous recommande de cliquer sur les liens ci-dessus. Sinon, voici le code.
<?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;
}
Remarquez dans le code ci-dessus que je ne suis intéressé que par la récupération de la différence en années. Vous pouvez choisir de choisir quelque chose de différent. Si tel est le cas, l’API proposée par PHP facilite cette tâche en examinant les propriétés de l’objet DateTime.
Mais étant donné deux dates, c’est un moyen simple de trouver la différence de dates en utilisant PHP dans le contexte de WordPress.
