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

PHP & Base de données Discussion :

timestamps (14) ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut timestamps (14) ?
    bonsoir ,

    voila , depuis que je passe en serveur dedié , j'ai plusieur probleme

    ici , lorsque je fais l'insertion de l'heure/date avec timestamp

    il m'affiche ceci :

    20060508130628

    au lieu de

    2006:05:08 13:06 :28

    why?

    thanks a lot

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    hellow,

    y'aurait pas une différence de version entre les serveurs SQL (MySQL?)

    Par défaut:
    4.0 et inférieur >> le timestamp est retourné YYYYMMDDHHMMSS
    4.1 et sup >> le timestamp est retourné YYYY-MM-DD HH:MM:SS
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    cela vien surement de la

    mais le probleme c'est que je ne vais pas modifier la version juste pour ca , enfin je pense , y aurait il des lors uns solution autre que celle ci?

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    d'après ce que j'ai trouvé, si t'as une version de mysql > 4.0.12 et < 4.1, tu peux lancer ton serveur avec le param --new, pour qu'il se comporte comme la 4.1. Tu auras ainsi tes timestamps "corrects".

    Sinon, tu peux toujours faire une fonction PHP (voire une requête mysql, mais plus ennuyant) qui réécrit le timestamp dans le format que tu veux ...
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    j'opte pour la 2

    je vois pas trop comment faire , si tu sais comment et que tu as le code sous la main tu peux m'aidez , au contraire je rechercherais des infos a ce sujet

    merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    Quelqu'un serais m'aider?

    je ne trouve rien sur ce sujet , si vous avez des liens de doc je suis preneur

  7. #7
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    il faut bien se dire que tu ne pourras pas changer l'insertion du timestamp dans la DB, ca, ca dépend du serveur... Par contre, tu pourras changer l'affichage de celui-ci dans une page qd tu le récupères! Et là, y'a plein de fonctions pour travailler sur les chaines de caractères, et je pense qu'avec un bon ptit preg_replace, tu devrais y arriver.
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Ici : http://fr.php.net/manual/fr/ref.mysql.php#54528

    tu as un exemple de fonction qui fait ca

    Exemple d'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo mysql_convert_timestamp_to_previous_usage("YYYY-MM-DD HH:MM:SS", 14); // affiche YYYYMMDDHHMMSS
    Maintenant, pour ton cas particulier, il y a plus simple... je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo str_replace(array('-',':',' '), array('', '', ''), "YYYY-MM-DD HH:MM:SS");
    suffit... mais ca ne gere que le cas des timestamp(14)

  9. #9
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Sauf que c'est tout le contraire qu'il veut faire

    (enfin, d'après ce que j'ai compris du post d'origine...)
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Oui, on dirait que tu as raison, j'ai été trop prompt ;o)

    Une solution pour le cas inverse donc (timestamp(14) uniquement) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    list($annee1,$annee2,$mois,$jour,$heure,$minute,$seconde) = explode("\1", chunk_split("YYYYMMDDHHMMSS", 2, "\1"));
    echo $annee1.$annee2."/$mois/$jour $heure:$minute:$seconde";

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    merci , en fait voici la partie du code que je desire afficher , et je ne sais pas trop ou mettre le script que tu m'as donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo "message ecrit le ".$col[3]."";
    Ou $col[3] est la date avec timestamp14

  12. #12
    Invité
    Invité(e)
    Par défaut
    utilise la fct date pour avoir la bonne syntaxe :

    $chaine = date(String Format, [int Timestamp]);

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    si je mets :
    $col[3] = date(String Format, [int Timestamp]); return $col[3];
    ca m'affiche rien , alias : page blanche donc ca marche pas , je dois surement pas faire juste

  14. #14
    Invité
    Invité(e)
    Par défaut
    faut reflechir un peu
    je t'ai donné la syntaxe pas la solution.

    date(String Format, [int Timestamp]);

    String Format : c'est le format que tu souhaites
    timestamp : met la valeur du timestamp (option facultative, si tu ne la mets pas alors tu affichera le temps courant)

    exemple :

    $timestamp = 267882348;
    echo date('Y:m:d H:i:s', $timestamp);

    affichera >
    1978:06:28 13:45:48

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    voila j'ai fais

    mais j'obtiens ceci :

    2038:01:19 04:14:07
    alors que nous sommes le 11mais 2006 vers 18H15

  16. #16
    Invité
    Invité(e)
    Par défaut
    tu as fais exactement le code que j'ai fait?
    car je viens de le tester et il maffiche ce que javais dis;

    montre ton code

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo date('Y:m:d H:i:s', $col[3]);  ?>

  18. #18
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    C'est normal que la soluce de rbaatouc ne fonctionne pas, car nous n'avons pas à faire ici avec un timestamp unix...
    le timestamp unix donne le nombre de secondes depuis le 01-01-1970, ce qui n'est pas ton cas.

    Voici ma propal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $col = "20060508130628";
     
    echo preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "$1-$2-$3 $4:$5:$6", $col);
    qui marche tout aussi bien que celle de Fladnag en fait...
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Points : 110
    Points
    110
    Par défaut
    merci mille fois!

    cela fonctionne effectivement !

    merci

  20. #20
    Invité
    Invité(e)
    Par défaut
    désolé javais pas vu que tu nutilisais pas le timestamp unix
    ben ça pourra te servir un jour peut etre de le savoir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. de char à timestamp
    Par imtinene dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/05/2004, 17h01
  2. [struts][validation][Timestamp] comment faire?
    Par anas.rih dans le forum Struts 1
    Réponses: 6
    Dernier message: 16/04/2004, 23h59
  3. Réponses: 4
    Dernier message: 06/02/2004, 16h23
  4. Conversion Timestamp vers varchar
    Par stejutt dans le forum SQL
    Réponses: 4
    Dernier message: 08/01/2004, 08h46
  5. recuperation du mois avec un timestamp
    Par matrxjean1984 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/10/2003, 14h41

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