Bonsoir,
J'aimerais faire une condition avec la date d'inscription de mes utilisateurs.

Si mon utilisateurs a seulement 2 jours d'ancienté alors on affiche pas le texte
Sinon si mon utilisateur a plus ou égal a 3 jours d'ancienté alors tu affiches mon texte

<span class="label label-info">Merci</span>

6 réponses


Camille Abdallah
Réponse acceptée

Hello !
Tu peux utiliser diff de DateTime

$now = new DateTime();
 $dateUser = new DateTime('2015-06-05');

 if( $dateUser->diff($now)->days >=3 ){
    echo "Afficher un texte";
 } else if( $dateUser->diff($now)->days < 2 ){
    echo "Afficher un autre  texte";
 }
Yubo
Auteur

Merci je vais tester, je te redis en cas ou :)

Yubo
Auteur

J'ai une erreur:

A PHP Error was encountered

Severity: Error

Message: Call to a member function diff() on a non-object

Filename: user/home.php

Line Number: 13

Backtrace:

Voiçi mon code

<?php
                    $now = new DateTime();
                     $dateUser = $USER->registration_date;

                     if( $dateUser->diff($now)->days >=3 ){
                        echo "Afficher un texte";
                     } else if( $dateUser->diff($now)->days < 2 ){
                        echo "Afficher un autre  texte";
                     }
                ?>

Par contre, les dates dans ma base de donnée sont sous forme comme ça 1433532983

Merci

Bonsoir.
@Yubo : Si tu n'as pas la version 5.5 de PHP, c'est normal, regardes.

Par contre, les dates dans ma base de donnée sont sous forme comme ça 1433532983

Car tu dois utiliser le format TIMESTAMP, utilises plutôt le format DATETIME ou DATE.
Car avec la plus grande majorité des classes PHP, notamment celles des dates, il est plus simple de travailler avec le format DATETIME.
Après, à toi de voir.

ÉDIT : Si tu as l'erreur, c'est probablement parce que la classe attend une valeur sous le format DATETIME, d'où le nom de la classe d'ailleurs.

Yubo
Auteur

Bonsoir
@Lartak j'utilise PHP 5.5.12 exactement, oui je pense que je vais basculer sur datetime

Yubo
Auteur

J'ai réussis avec data();

<?php
                     $now = new DateTime();
                     $dateUser = new DateTime(date('d/m/Y', $USER->registration_date));

                     if( $dateUser->diff($now)->days >=3 ){
                        echo "Afficher un texte";
                     }else{
                        echo "Afficher un autre  texte";
                     }
 ?>