Page 1 sur 1

prob avec function diff()

Posté : 02 déc. 2011, 15:25
par miiidooo19
Bonjour

j'ai une function pour comparais entre deux date (dhailleur cé Mr moogli qui m'a aidé dans cette fonction :D )
elle marche bien en local mais pas en ligne
voici mon code
function compareDate( $date )  // function pour comparer la date pour afficher soit Aujord'hui si la date comparer = date du jour, hier si la date = date hier, sinon afficher la date même
		{
			global $ret;
			$aujourdhui = new datetime();// initialise avec la valeur de l'instant pr?sent par d?faut
			$dateAtraiter = new datetime($date);// bon faudrait v?rifier que le format soit bien yyyy-mm-dd
			$interval = $aujourdhui->diff($dateAtraiter);
			$ecart = $interval->format('%R%a');
			switch ($ecart)
			{
				case 0: $ret = 'aujourd\'hui';
					break;
				case -1: $ret = 'hier';
					break;
				default : $ret = $date; 
			}
			unset($aujourdhui);
			unset($dateAtraiter);
			return $ret;
		}
et voici l'erreur que j'ai : Fatal error: Call to undefined method DateTime::diff() in ligne ou y a l'appel de la function diff() c'est à dire $interval = $aujourdhui->diff($dateAtraiter);

c'est une question de compatibilité avec php 5? si oui quelle function peu la remplcé ? j'ai essayé date_diff() et si aussi la meme errure

Re: prob avec function diff()

Posté : 02 déc. 2011, 16:42
par Spols
Je pense qu'il faut que tu vérifie la version de PHP qu'il y a sur ton serveur avec la fonction phpinfo()
Ton serveur est probablement dans une autre version qui n'implèmente pas cette fonctionnalité

Re: prob avec function diff()

Posté : 02 déc. 2011, 17:17
par xTG
DateTime::diff() est implémenté à partir de PHP 5.3.0 (de même pour date_diff() qui est juste un alias).

Re: prob avec function diff()

Posté : 02 déc. 2011, 22:50
par miiidooo19
DateTime::diff() est implémenté à partir de PHP 5.3.0 (de même pour date_diff() qui est juste un alias).
et elle est pas remplacé par une autre?

Re: prob avec function diff()

Posté : 02 déc. 2011, 22:59
par Ryle
C'est surtout qu'elle n'existait pas avant php 5.3 et fallait se débrouiller autrement :)

Quant à la façon de faire, y en a de toute sorte, mais le plus simple consiste généralement à jeter un coup d'oeil dans la documentation de DateTime::diff. Dans les commentaires tu trouveras très certainement des suggestions de fonctions compatibles avec d'autres versions de php :)

Re: prob avec function diff()

Posté : 02 déc. 2011, 23:41
par miiidooo19
j'ai vu ça il disent de la modifier par date_diff mais c'est toujours le même erreur

Re: prob avec function diff()

Posté : 02 déc. 2011, 23:59
par laurents
et pourquoi pas mettre le serveur en PHP5.3 ; pour OVH et ça doit bien se faire chez les autres hébergeurs...

Re: prob avec function diff()

Posté : 03 déc. 2011, 11:04
par xTG
Et sinon si ta date passée en paramètre de ta fonction provient d'une bdd tu peux toujours le faire en SQL lors del a récupération ce calcul.

Re: prob avec function diff()

Posté : 06 déc. 2011, 14:09
par miiidooo19
Et sinon si ta date passée en paramètre de ta fonction provient d'une bdd tu peux toujours le faire en SQL lors del a récupération ce calcul.
oui la date et sélectionnée repartire d'une bdd je fait comment pour calcul en sql :/

Re: prob avec function diff()

Posté : 06 déc. 2011, 14:18
par moogli
pour mysql => date_format ==> http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

c'est vrai qu'ils pourraient faire un effort sur les versions ^^

@+

Re: prob avec function diff()

Posté : 06 déc. 2011, 14:33
par miiidooo19
pour mysql => date_format ==> http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

c'est vrai qu'ils pourraient faire un effort sur les versions ^^

@+
^^ merci Mr moogli je vais voir ça ce soir :)

Re: prob avec function diff()

Posté : 06 déc. 2011, 14:37
par moogli
:mrgreen: :mrgreen: :mrgreen: