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 PHP Discussion :

Gestion des dates et décalage horaire


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut Gestion des dates et décalage horaire
    Bonjour, et j'espere que je poste au bon endroit.

    je galere depuis hier pour fixer une maniere a gerer les dates ainsi que le decalage horaire. je crée actuellement un site marchand bilingue: francais et anglais (US & UK). j'ai opté pour des fichier xml pour la traduction du site et je suis en version 5.2.14 de PHP

    1- lorsqu'un client achete un produit, quelle date d'achat enregistrer dans la base de donné?
    j'ai pense a mettre la date francaise et dans un autre champ, j'inserer +/-X, où X est le nombre d'heure de decalage. est ce bon ou y a t-il mieux? et comment pourrais je recuperer le nombre d'heures de decalage??

    2- lorsque j'extrais une date d'une bdd, quelle est la meilleure maniere de l'afficher selon la langue du site?
    j'ai entendu parlé de sprintf, vprintf, ... mais je ne vois pas trop son utilité puisque je peux afficher ma date de cette maniere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_uk = $day." of ".$month.", ".$year;
    je vous prie de bien vouloir m'eclairer un peu a ce sujet. je suis dans le flou total!!

    Merci

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    le mieux est peut être d'enregistrer le timestamp (qui est toujours indépendant du timezone), et en fonction du timezone affichée la date.

    Pour cel tu devras utiliser les classes DateTime et DateTimeZone qui existent dans PHP depuis la version 5.1.

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    merci pour la reponse et aussi pour le lien. je le lis tout de suite!!

    le mieux est peut être d'enregistrer le timestamp (qui est toujours indépendant du timezone), et en fonction du timezone affichée la date.
    je ne vois pas trop ce que tu veux dire par "independant du timezone"
    la date en timestamp n'est il pas egal a strtotime("2010-11-16 11:13:35") ??

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    et une petite precision: la fonction date_default_timezone_get() s'execute coté serveur?? il y a donc aucun moyen en php de savoir que monsieur X qui est à New York que son fuseau est 'America/New_York' ??

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Comme tu parle d'achat de produits, donc de commerce en ligne, et bien quel intérêt il y a il de mettre la date de commande (facture) en fonction de la situation géographique du client ?

    L'achat s'est effectué sur ton site, c'est cette heure là qui fait plutôt référence, non ?

    En tout cas, quand je commande quelque chose en France Métropolitaine, la date de commande c'est celle de la France, pas celle de la Réunion où j'ai commandé.

    De même que tu évoque de mettre la date selon la langue.
    Là c'est pareil. Si c'est un Japonnais par exemple, vas tu mettre la date du Japon et dans cette langue aussi ?
    Ca risque d'être un peu compliqué je pense.

    il y a donc aucun moyen en php de savoir que monsieur X qui est à New York que son fuseau est 'America/New_York' ??
    Personnellement, j'en ai pas connaissance.
    Tout ça s'apparente à la géolocalisation, je sais d'ailleurs que tu as déjà recourt à un de ces services.

    Faudrait voir par exemple ce que tu as dans ta Base de Données s'il y a moyen de rajouter par là un champs genre "timezone" pour les renseigner, ne serait ce qu'aux Pays par exemple.

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Bonjour RunCodePhp, cava??

    Comme tu parle d'achat de produits, donc de commerce en ligne, et bien quel intérêt il y a il de mettre la date de commande (facture) en fonction de la situation géographique du client ?
    L'achat s'est effectué sur ton site, c'est cette heure là qui fait plutôt référence, non ?
    c'est la grande question que je me pose! si un americain achete sur mon site a 3h du mat heure francaise (18h heure à Los Angeles), ne serait il pas bizarre qu'il voit sur son historique de commande, une heure qui ne correspond pas du tout a l'heure de son achat?

    De même que tu évoque de mettre la date selon la langue.
    Là c'est pareil. Si c'est un Japonnais par exemple, vas tu mettre la date du Japon et dans cette langue aussi ?
    non pas en japonais le site sera en francais et anglais (UK & international)
    sur le site francais j'afficherai la date: 15 decembre 2010, en UK: december 15th 2010. pareil pour les prix, il y a un format pour la france, un autre pour le royaume uni et pour les USA (15.50 €, $15,00, ...)

    Faudrait voir par exemple ce que tu as dans ta Base de Données s'il y a moyen de rajouter par là un champs genre "timezone" pour les renseigner, ne serait ce qu'aux Pays par exemple.
    j'ai pensé a rajouter un champ "time zone" par pays mais ca ne marchera pas bien puisque la russie et les usa par exemple ont plusieurs fuseaux horaires. la seule solution c'est que je demande a l'utilisateur de selectionner son fuseau horaire. mais apres tout, est ce vraiment interessant de faire tout cela????!!

    e sais d'ailleurs que tu as déjà recourt à un de ces services.
    j'ai d'ailleurs pensé a toi car j'ai carrement posé la question a WIPmania par rapport a l'utilisation de leurs api et voici leurs reponse que j'ai eue avant hier:
    Dear Reda,
    that's right, api is also free for comercial purposes
    the main api is to find on the
    http://www.wipmania.com/en/api/
    ...

Discussions similaires

  1. gestion des dates dans un formulaire
    Par clement42 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 18/05/2006, 11h34
  2. [VB6]gestion des dates
    Par luckelm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 20h25
  3. Application international (Gestion des dates)
    Par vsavoir dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/08/2005, 10h22
  4. Réponses: 3
    Dernier message: 13/08/2004, 18h52
  5. [MCD] [MCD] Gestion des dates
    Par brionne dans le forum Schéma
    Réponses: 3
    Dernier message: 30/05/2003, 13h01

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