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

Langage Delphi Discussion :

Equivalent de la fonction php time() ?


Sujet :

Langage Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Equivalent de la fonction php time() ?
    edit : après réflexion, j'ai décidé de suivre le php, j'ai donc changé le titre de mon sujet et donné les détail dans mon reply du bas

    salut

    mon delphi utilise des script php et j'ai un pti soucis au niveau du timestamp de php

    sur delphi pour trouver le timestamp je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      DateTimeToUnix(Now);
      myDate := UnixToDateTime;
      DecodeDateTime(myDate, myYear, myMonth, myDay, myHour, myMin, mySec, myMilli);
    je n'ai pas mis le code complet, mais juste les étapes que j'utilise pour passer du timestamp à un affichage normal

    j'ai ainsi la date et l'heure tout nikel

    par contre en php j'utilise simplement time();

    et j'ai remarqué que l'heure à +1h d'avance (je ne sais pas pkoi, sur le pc ou l'heure est réglé sur La paz -4h) donc pas de prob d'heure d'été

    mais le pire c'est que j'ai essayé de décodé le timestamp delphi en php et inverse et ils ne donnent pas la même chose

    donc pour résumé, la partie delphi tou est ok, la partie php, le timestamp trouvé à 1h d'avance

    je sais très bien qu'en enlevant 3600 j'aurai nikel comme delphi, mais de 1 j'aimerais savoir la raison et de 2 je serai amené à utiliser les timestamp de delphi dans mes script php et aussi le contraire

    donc j'aimerais que delphi et php trouve les mêmes timestamp

    delphi étant déjà opérationnel, je me demandais si je devais pas retouché la partie php ...

  2. #2
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    personne ? mon poste n'est peut être pas clairement expliqué ?

  3. #3
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 290
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 290
    Points : 1 941
    Points
    1 941
    Par défaut
    D'après ce que tu dis, Delphi donne un résultat correct et php non.

    Essaie dans le forum php, tu auras plus de chances d'avoir des réponses, je pense (peut-être est-ce une histoire d'heure d'été).

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    je suis entrain de me demander si DateTimeToUnix(Now) = time() ?

    en tout cas ça me donne 2 nombres différents, et la routine d'affichage ne dois pas être la même ...

    php est php je pense pas qu'on puisse lui demander trop

    donc je reformule d'une certaine manière ... j'aimerais une fonction delphi qui trouve le MEME nombre que la fonction time() de php

    pour le décalage d'une heure, je pense "bricoler" et admettre que c'est à cause de l'heure d'été; mais le mieux c'est de suivre php ...

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Apparamment, time() renvoit une heure UTC (universelle, sans le décalage horaire induit pas le fuseau courant et l'heure d'été si nécessaire). Now() renvoit l'heure locale (celle que affiche ta montre). C'est normal que les deux dates soient différentes.

    Si tu veux obtenir une heure équivalente, tu dois te débrouiller pour que Delphi te renvoit une heure UTC (indice : GetSystemTime() puis SystemTimeToDateTime() devraient pouvoir t'aider...)

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci j'ai réussis à trouver le même TimeStamp (edit1) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
     st: TSystemTime;
     myDate : TDateTime;
    begin
      GetSystemTime(st);
      myDate := SystemTimeToDateTime(st);
      edit1.Text := inttostr(DateTimeToUnix(myDate));
    end;
    par contre maintenant c'est l'affichage que je dois gérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
     myHour,myYear, myMin, myMonth, mySec, myDay, myMilli : Word;
    begin
      DecodeDateTime(myDate, myYear, myMonth, myDay, myHour, myMin, mySec, myMilli);
      edit1.Text := TimeToStr(myDate);
    end;
    il me sort 1h du matin ... alors qu'il était 21h quand j'ai fait le teste

    donc soit il y a une manière propre ? ou soit j'enlève 3600 sec * 4 (4h) au timestamp avant de faire l'affichage ?

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 733
    Points : 5 401
    Points
    5 401
    Par défaut
    Citation Envoyé par Reisubar Voir le message
    Apparamment, time() renvoit une heure UTC (universelle, sans le décalage horaire induit pas le fuseau courant et l'heure d'été si nécessaire). Now() renvoit l'heure locale (celle que affiche ta montre). C'est normal que les deux dates soient différentes.

    Si tu veux obtenir une heure équivalente, tu dois te débrouiller pour que Delphi te renvoit une heure UTC (indice : GetSystemTime() puis SystemTimeToDateTime() devraient pouvoir t'aider...)
    Si on se place du coté PHP, la fonction time() revoie l'heure courante du serveur sur lequel le script PHP est stocké.

Discussions similaires

  1. Equivalent HTML à la fonction Include du PHP ?
    Par souffle56 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/08/2009, 22h27
  2. [Tableaux] Equivalent d'une fonction en php
    Par Wimoux dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2008, 03h03
  3. Réponses: 2
    Dernier message: 27/11/2007, 16h49
  4. equivalent VB.NET de la fonction PHP stripslashes
    Par maXrez dans le forum ASP.NET
    Réponses: 6
    Dernier message: 13/06/2007, 12h50
  5. equivalent de la fonction EXPLODE de php
    Par gyouk dans le forum ASP
    Réponses: 1
    Dernier message: 28/11/2005, 10h49

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