IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Contourner la limitation de Timestamp ?


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut Contourner la limitation de Timestamp ?
    Bonjour,

    j'ai un problème de limite de Timestamp dans Joomla.
    Je dois remonter dans les années 1800 et je suis bloqué au 13 Décembre 1901.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    1. file "components/com_content/models/article.php" -----
      $article->created = gmdate('Y-m-d H:i:s');
    ...
      $article->modified = gmdate('Y-m-d H:i:s');
    ---------------------------------------------------------
    2. file "administrator/components/com_content/controller.php" -----
      $createdate =& JFactory::getDate();
    ...
      $row->created = $createdate->toUnix();
    ---------------------------------------------------------
    3. The same file
    "administrator/components/com_content/controller.php" -----
      $config =& JFactory::getConfig();
      $tzoffset = $config->getValue('config.offset');
      $date =& JFactory::getDate($row->created, $tzoffset);
      $row->created = $date->toMySQL();
    ---------------------------------------------------------
    On me dit qu'il n'y aurait plus de limitation si le type de données défini était Datetime...

    Comment faire ?

  2. #2
    Membre très actif
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Par défaut
    Bonjour,

    Les timestamp peuvent tout à fait être négatifs, une petite gymnastique devrait te permettre de faire ce que tu désires.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    Euh... il s'agit des données d'un champ du formulaire de création d'article du CMS Joomla. Il faut que je change les fonctions qui les traitent.
    Mais je ne vois pas comment...

    Un petit coup de pouce ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    keaton7, je reviens sur ce topic car j'ai toujours le problème.

    Oui effectivement les timestamps peuvent être négatifs :
    je les utilise puisque je remonte avant 1970.
    Mais je bloque au 13 Dec 1901...

    var_dump(strtotime('1000-01-30'));
    sera interprété différemment dans 2 environnements :
    32-bit PHP: bool(false)
    64-bit PHP: int(-30607689600)

    Pas de chance pour moi je suis en 32-bit chez OVH.
    Et je ne connais pas de gymnastique pour contourner ces limitations-là !
    Si elle existe, Merci de me l'indiquer...

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    A partir de php 5.2, tu peux utiliser l'objet 'DateTime'.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
      $dateDeb = '1750-07-01';
      $ecartAnnee = 200;
      $ecartMois = 3;
     
      $date = new DateTime($dateDeb);
      $date -> modify('+' . $ecartAnnee . ' year ' . $ecartMois . ' month');
      echo 'date début : ' . $dateDeb . '<br>date fin : ' . $date -> format('Y-m-d');
    ?>
    affiche :
    date début : 1750-07-01
    date fin : 1950-10-01

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    749
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 749
    Par défaut
    J'ai bien essayé un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		$config =& JFactory::getConfig();
    		$tzoffset = $config->getValue('config.offset');
    		$date =& JFactory::getDate($row->created, $tzoffset);
    		$date = new DateTime($date);
    		$row->created = $date->toMySQL();
    mais ça ne marche pas (page blanche...)

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/01/2012, 09h54
  2. Réponses: 3
    Dernier message: 06/08/2009, 17h09
  3. Contourner la limite des controles
    Par supertoms dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/05/2008, 15h08
  4. [TP] Comment contourner la limite de taille des variables ?
    Par celinec62 dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 20/04/2007, 21h00
  5. Contourner la limite de 32767 éléments d'une combobox ?
    Par samuelsiffert dans le forum IHM
    Réponses: 6
    Dernier message: 11/04/2006, 00h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo