Un tutoriel pour déterminer la durée entre la date de début ($date1) et la date de fin ($date2) en années, mois, heures, minutes et secondes dans un projet Laravel.
🌎 La version anglaise de cette publication : How to calculate the duration between two dates in Laravel
Pour illustrer le processus de calcul du temps écoulé entre deux dates, nous allons nous intéresser aux champs created_at
et updated_at
du modèle (par exemple, App\Models\User.php
dans votre projet Laravel). Ces champs indiquent respectivement la date de création et de dernière mise à jour du modèle.
Pour trouver l'intervalle de temps entre ces deux dates, nous allons utiliser la méthode diff()
:
class User extends Authenticatable
{
public function getDurationAttribute () {
$date1 = $this->created_at;
$date2 = $this->updated_at;
$duration = $date1->diff($date2); // Différence entre les dates
return $duration; // Objet DateInterval
}
}
La méthode getDurationAttribute()
renvoie un objet DateInterval
. Cet objet peut être formaté en année, mois, jour, heure, minute et seconde à l'aide de la méthode format()
, puis affiché sur la vue Blade :
{{ $user->duration->format("%y années %m mois %d jours %h heures %i minutes %s secondes") }}
Ce code affichera une chaîne comme celle-ci :
1 années 3 mois 16 jours 18 heures 33 minutes 12 secondes
Les formats acceptables sont décrits dans la documentation DateInterval.
🖐 Notez-bien : Par défaut, les attributs created_at
et updated_at
sont des objets Illuminate\Support\Carbon
. S'il s'agit d'un autre champ temporel (date/heure), vous devrez le convertir en objet Carbon via la propriété $casts
du modèle :
protected $casts = [
"start_time" => "datetime",
"end_time" => "datetime"
];
Portez-vous bien 😉
Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.
Wilo Ahadi, l'auteur
Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, infographiste et designer, ... J'aime partager mon expérience en formant sur la plateforme Akili School
Voir profilAutres publications
Voir toutes les publication de Wilo Ahadi
Sélection ebook
10 Laravel tips and techniques for your next PHP project
Développement web
Commentaires