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

JavaScript Discussion :

Convertir un input datetime-local en date UTC via javascript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Convertir un input datetime-local en date UTC via javascript
    Bonjour je tente de convertir une date d'un input datetime-local, mais j'ai un probleme de convertion avec l'heure -> l'heure est incrémentée de 2 heures supplémentaires
    Si j'ai 10:00 dans le input, la convertion UTC me restitue 12:00. Pourqoui mon code me semble correcte.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="datetime-local" name="myDate" id="date value="" />
    ]

    voici le code JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	var newDate = new Date(myDate);
    		alert("newDate "+newDate);
     
    		var day = newDate.getUTCDate();
    		var month = newDate.getUTCMonth();
    		var year = newDate.getUTCFullYear();
    		var hours = newDate.getUTCHours();
    		var minutes = newDate.getUTCMinutes();
    		var seconds = newDate.getUTCSeconds();
    		//alert("Y: "+year+" / m: "+month+" / d: "+day+" / H: "+hours+" / min: "+minutes+" / sec: "+seconds)
     
    		var discount_date_from_UTC = Date.UTC(year,month,day,hours,minutes,seconds)/1000;
    		//alert("discount_date_from_UTC: "+discount_date_from_UTC)
    Merci d'avance.

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    bonsoir avez vous une réponse à mon probleme ?

  3. #3
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 406
    Points : 2 053
    Points
    2 053
    Par défaut
    Bonjour,
    Date.UTC retourne un nombre de millièmes de seconde à partir des données que tu passes en paramètre.

    Mais il n'est pas précisé que Date.UTC fait la conversion heure d'hiver/heure d'été en temps UTC.
    Pour se faire il faudrait que la fonction prenne en compte le décalage horaire...

    Donc pour les fuseaux horaires utilisés en France A & B, sur l'heure :
    Pour A l'hiver, il te faut faire -1.
    Pour B l'été, il te faut faire -2.

    Le mieux étant d'utiliser getTimezoneOffset() qui retourne cette information, exprimée en minutes

    [EDIT 07:30]
    Perso j'utilise today.getUTCDate() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function datePGJ() {
     
    var today = new Date();
     
    jour = parseInt(today.getUTCDate());
    mois = parseInt(today.getUTCMonth() +1);
    annee = parseInt(today.getUTCFullYear());
    heure = parseInt(today.getUTCHours());
    minute = parseInt(today.getUTCMinutes());
    seconde = parseInt(today.getUTCSeconds());
     
    }

Discussions similaires

  1. [delphi 2010] convertir une date locale future en UTC
    Par charlyoleg dans le forum Langage
    Réponses: 0
    Dernier message: 25/10/2013, 09h55
  2. Conversion Local date <-> UTC
    Par wildbackk dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/04/2008, 20h27
  3. Date UTC en local date
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/10/2006, 15h20
  4. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26
  5. Comment convertir une heure (TDateTime) locale en UTC/GMT
    Par rconty dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/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