Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cannot instantiate non-existent class: datetime

Sujet résolu
    3 février 2015 à 16:57:29

    Bonjour à tous,


    J'ai créé un gestionnaire de CV en ligne.

    Une des fonctions du site me permet de supprimer tous les CV de la base de données datant de plus d'un an.

    La page ressemble à celle-ci :



    Et voici le code :

    <fieldset>
    	<legend>supprimer les CV de l'annee derniere</legend><br /><br />
    	<?php 
    		$date = new DateTime(date("Y-m-d")); // Date actuelle
    		$interval = new DateInterval('P1Y'); // Soustrait 1 année à la date actuelle
    		$date->sub($interval);
    		$date->format('Y-m-d') . "\n";
    		list($year,$month,$day,) = explode('-', $date->format('Y-m-d'));
    		$dateFr = "$day/$month/$year";
    	?>	
    	Supprimer tous les CV enregistrés avant le : <b style="color:#055C9C"><?php echo $dateFr ?></b>
    	<p>
    		<input type="submit" name="clean" value="supprimer" class="supprimer" onclick="return confirm('Confirmer la supppression ?')">
    	</p>
    </fieldset>

    Tout fonctionne parfaitement en local, avec WAMP.

    Mais lorsque je met mon site en ligne, voici l'affichage que j'obtiens :



    Datetime ne semble pas être reconnu... :(

    J'ai fais de nombreuses recherches avant de poser le problème ici. Il semble que la version PHP que j'utilise soit trop ancienne pour utiliser Datetime. (d'après ce que j'ai pu trouver comme infos)

    Pouvez-vous me confirmer cela ? Par ailleurs, comment contourner ce problème afin que je puisse retrouver un affichage tel que je l'avais sur la version locale.

    Il s'agit là que d'un souci d'affichage. 

    La requête exécutée suite au clic sur le bouton "supprimer" n'a rien à voir avec les variables utilisées pour l'affichage.

    Merci d'avance pour votre aide ;)

    -
    Edité par Divide 3 février 2015 à 17:01:02

    • Partager sur Facebook
    • Partager sur Twitter
      3 février 2015 à 17:11:57

      Je crois qu'effectivement la version de php de ton hébergeur soit un peu vieux :p . Tu peut toujours utiliser les timestamp
      • Partager sur Facebook
      • Partager sur Twitter
        3 février 2015 à 17:18:55

        La classe Datetime requiert PHP >5.0.2, renseigne toi au près de ton hébergeur, parfois on a le choix entre plusieurs versions !
        • Partager sur Facebook
        • Partager sur Twitter
          4 février 2015 à 10:06:33

           Merci pour vos réponses, j'ai donc utiliser les timestamp et fait comme ceci : 

          <fieldset>
          	<legend>supprimer les CV de l'annee derniere</legend><br /><br />
          	<?php 
          		$timestamp = time() - 31556926; // soustrait le nombre de secondes dans une année 
          		$date = date('d/m/Y', $timestamp);
          	?>
          	Supprimer tous les CV enregistrés avant le : <b style="color:#055C9C"><?php echo $date ?></b>
          	<p>
          		<input type="submit" name="clean" value="supprimer" class="supprimer" onclick="return confirm('Confirmer la suppression ?')">
          	</p>
          </fieldset>


          Je ne sais pas s'il s'agit de la meilleure des méthodes, en tout cas ça à l'air de fonctionner ^^

          Merci encore !

           

          • Partager sur Facebook
          • Partager sur Twitter

          Cannot instantiate non-existent class: datetime

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown