Afficher time écoulé

Par SparToo, il y a 9 ans


Bonjour,

Je souhaite à l'aide d'une fonction créer dans mon AppController afficher par exemple le nombre de jours depuis l'inscription, jusque là tout va bien sauf que je souhaite compliquer un peu la fonction en lui envoyant en paramètre, l'élément auquel débuter l'execution

Exemple d'utilisations

<?php $this->afficher_date(AuthComponent::user('created'), time(), 'mois'); ?>

Retournerais inscrit depuis x mois.

Ma fonction actuelle

** fonction vide étant donné que je n'ai pas mis le traitement pour l'instant.

<?php public function afficher_date($time1, $time2, $start = null) { App::uses('CakeTime', 'Utility'); $time1 = CakeTime::fromString($time1); $time2 = CakeTime::fromString($time2); //$this->Session->write('Auth.User.created', '2016-09-24 14:45:00'); $secondes = floor(($time2 - $time1) / 1); $minutes = floor(($time2 - $time1) / 60); $heures = floor(($time2 - $time1) / 3600); $jours = floor(($time2 - $time1) / 86400); $mois = round(($time2 - $time1) / 2592000); $annees = floor(($time2 - $time1) / 31104000); /** * Si start = null on affiche tout * Sinon si start existe, on démare à l'élément cibler */ } ?>

J'aimerais quelques chose qui m'évite de faire ce genre de code

if($start == "secondes") { // tout le traitement } elseif($start == "minutes") { // tout sauf les secondes } elseif($start == "jours") { // tout sauf les secondes,minutes,heures }

Une idée de comment je pourrais proceder ? 1 fonction par élément peut être ?

Merci !

3 réponses

SparToo, il y a 9 ans

Merci pour le lien, apparament la fonction n'existe pas sous CakePHP 2, du coup je vais surement passer directement sur CakePHP 3

Kareylo, il y a 9 ans

Tu peux tout simplement utiliser la bibliothèque sous CakePHP 2 aussi, utilise composer et charge l'autoload