[POO] Fonctions statiques

Eléphant du PHP | 281 Messages

21 déc. 2005, 14:31

Bonjour,

Je suis en train d'écrire une classe Date avec principalement des méthodes statiques permettant de faire des conversions, etc...

Pour vous exposer mon problème, je me permet de poster les quelques lignes entrant dans le sujet :
class Date {
	
		/**
		 * Converti une date au format jj/mm/aaaa hh:mm:ss en un timestamp
		 * 
		 * @param String $date Date a convertir au format jj/mm/aaaa hh:mm:ss
		 * @return int Renvoie la date en timestamp
		 */
	
		static public function dateToTimestamp($date)
		{
			list($annee, $mois, $jour, $heure, $minute, $seconde) = sscanf($date, "%d-%d-%d %d:%d:%d");
			
			return mktime($heure, $minute, $seconde, $mois, $jour, $annee);
		}
		
		/**
		 * Converti une date au format jj/mm/aaaa hh:mm:ss dans
		 * un format souhaite
		 *
		 * @param String $date Date a convertir au format jj/mm/aaaa hh:mm:ss
		 * @param String $format Nouveau format de date voulu
		 * @see dateToTimestamp()
		 * @return String Renvoie la date dans le nouveau format
		 */
	
		static public function conversionFormat($date, $format="d/m/Y H:i:s")
		{		
			return date($format, dateToTimestamp($date));
		}
}
Mon problème intervient lorsque je fais appelle à la methode statique conversionFormat() :
<?php
	echo Date::conversionFormat("2005-12-08 14:34:24");
?>
Ca me renvoie une erreur comme quoi la function DateToTimestamp() n'existe pas :

Code : Tout sélectionner

Fatal error: Call to undefined function dateToTimestamp() in /www/lib/Date.class.php on line 37
La ligne 37 correspondant à :

Code : Tout sélectionner

return date($format, dateToTimestamp($date));
Ma question est donc es-ce que j'ai fais une erreur grosse comme un éléphant :roll: Ou bien es-ce qu'on n'a pas le droit en PHP de faire appelle à une méthode statique depuis une autre méthode statique ?

Merci d'avance.

@+

Mammouth du PHP | 1311 Messages

21 déc. 2005, 14:34

salut
essaye avec
static public function conversionFormat($date, $format="d/m/Y H:i:s")
        {        
            return date($format, self::dateToTimestamp($date));
        } 

Eléphant du PHP | 281 Messages

21 déc. 2005, 14:49

Erf :shock: , oui effectivement ça marche. Merci, ça m'avait pas fait stilk sur le moment :wink: