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 :

Enlever 6h à une date


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Points : 185
    Points
    185
    Par défaut Enlever 6h à une date
    Salut à tous,

    J'ai cherché sur le net mais je ne trouve pas de solution à mon problème.

    Je voudrais savoir comment faire pour soustraire 6h à une date. Je dispose d'une date au format suivant :
    new Date(annee, mois, jour, heure, minutes, 0, 0)
    La complexité résidant dans le fait que :
    - Supprimer 6h à une date se trouvant avant le 1er janvier à 6h modifie l'année, le mois et le jour
    - Supprimer 6h à une date dont le mois n'est pas janvier et dont le jour est un premier jour du mois et qu'on est avant 6h modifie le mois et le jour
    ...
    Bref, il y a beaucoup de cas à considérer (d'ou ma recherche pour travailler sur des Date)

    Si quelqu'un a une solution a mon problème, je lui en serai vraiment très reconnaissant !!!

    Merci

    Edit :
    J'ai peut être une solution :
    Selon vous, quelque chose comme ça, peut-il faire l'affaire ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var date1 = new Date(annee, mois, jour, heure, minutes, 0, 0);
    var date2 = new Date(0, 0, 0, 6, 0, 0, 0);
    var diff = new Date(date1.getTime() - date2.getTime());

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 739
    Points
    4 739
    Par défaut
    au moins 2 solutions :
    - convertir la date en heures, en partant d'une date fixe, 1j = 24h, 1mois = 31 ou 30 ou29 ou 28 jours => X heures
    _ retirer tes six heures à la dates initiale et
    si lheure es négative y ajouter 24 heure et retrancher un jour
    si le jour est négatif retrancher un mois et utiliser le dernier jour du mois précédents
    si le mois est négatif retrancher un an.
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 872
    Points : 3 716
    Points
    3 716
    Par défaut
    C'est assez simple en fait nativement avec setHours() et getHours(), teste ici : http://jsbin.com/qasihadogu/edit?js,console

  4. #4
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 739
    Points
    4 739
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    C'est assez simple en fait nativement avec setHours() et getHours(), teste ici : http://jsbin.com/qasihadogu/edit?js,console
    C'eest pas la réponse technique qui comptait ici, mais la réponse pédagogique
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    Perso dès que j'ai à traiter avec les dates en JS je préfère passer par momentjs qui permet de s'épargner tous les truc un peu lourd et inintéressant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    moment().subtract(6, 'hours').calendar(); // Retire 6h à la date courante
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Enlever des jours à une date
    Par borgfabr dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/03/2013, 15h08
  2. Réponses: 4
    Dernier message: 17/04/2008, 17h51
  3. [Dates] enlever 8 jours à une date
    Par viny dans le forum Langage
    Réponses: 10
    Dernier message: 04/01/2008, 16h28
  4. Réponses: 7
    Dernier message: 01/06/2007, 15h52
  5. [VB]Enlever 1 jour à une date si heure est comprise entre...
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 20/01/2006, 15h48

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