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 :

Date d'hier dynamique


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 42
    Points
    42
    Par défaut Date d'hier dynamique
    Bonjour à tous,

    J'aimerais trouver un moyen de récupérer la date du jour -1 le plus simplement possible.

    Je vous plante le décor:
    J'utilise un logiciel basé sur des flux xml, avec une interface qui les rend transparents. Ce logiciel utilise un peu de javascript pour certaines opérations, dont l'insertion de champs calculés.

    Là, je veux créer une opération quotidienne qui va chercher sur un serveur un fichier créé quotidiennement la veille, dont le nom est composé entre autres avec la date du jour (de la veille de l'opération donc).

    Exemple, aujourd'hui je veux récupérer le fichier nommé: fr_exportcustomers20090916001.csv

    Mon logiciel me permet d'insérer dans le nom du fichier à récupérer un peu de javascript:
    fr_ExportCustomer<%= formatDate(new Date(), "%4Y%2M%2D") %>001.csv
    Là, j'ai le fichier d'aujourd'hui.

    Y a-t-il un moyen de récupérer facilement là-dedans la date de la veille?
    Je ne peux pas développer plusieurs lignes de code dans ce champ. Je songeais vaguement à remplacer directement dans l'ensemble de la chaîne les deux caractères du jour en les passant en numérique et en retranchant 1, mais je risque d'avoir de belles surprises le 1er du mois.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Les dates en JS sont exprimées sous la forme d'un nombre de millisecondes écoulées depuis une date conventionnelle (je ne sais plus si c'est 1er janvier 1970 ou 1900 ou autre, mais ça n'a ici aucune importance).

    >>> Essaie de remplacer par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    (new Date() - (1000*60*60*24))
    Les histoires de jours, mois, années bisextiles et toutes ces joyeusetés te seront donc a priori épargnées... ouf !

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    sinon on peut aussi passer par les getFullYear Month et Date, retrancher 1 au date et faire un set en commençant par le year puis le month et enfin le date
    En principe il retablit tout seul un 0 janvier par exemple en 31 déc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    varbase=new Date();
    base.setFullYear(2010);
    base.setMonth(0);
    base.setDate(1);
    alert (base.toLocaleString());
     
    var yesturdayYear=base.getFullYear();
    var yesturdayMonth=base.getMonth();
    yesturdayDate=base.getDate()-1;
     
    hier=new Date();
    base.setFullYear(yesturdayYear);
    base.setMonth(yesturdayMonth);
    base.setDate(yesturdayDate);
    alert (base.toLocaleString());
    c'est plus long mais ça évite de passer par un calcul de millisecondes
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    c'est plus long mais ça évite de passer par un calcul de millisecondes
    Oui c'est vrai ^^

    D'habitude j'utilise moi aussi les fonctions de Date, ne serait-ce que pour la "propreté" de la logique applicative et la maintenabilité, mais là c'était surtout pour lui permettre de modifier la valeur de la date en conservant une seule instruction dans son traitement...

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    parfois la clarté n'est pas la ou on l'attend ...

    imagine qu'il te faille retirer un mois
    tu retires quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (1000*60*60*24)*30
    (1000*60*60*24)*31
    (1000*60*60*24) *27
    getMonth()-1
    Tout dépend du calcul dont on a besoin ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Tout dépend du calcul dont on a besoin ...
    >>> C'était bien le sens de ma dernière réponse

    Et si le problème avait été de retirer un mois je n'aurais même pas commencé à penser à faire un calcul de millisecondes...

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2008
    Messages : 71
    Points : 42
    Points
    42
    Par défaut
    Réponse simple et précise, merci.

    En revanche ce n'est pas tout à fait efficace pour mon cas on dirait bien, car je me retrouve avec une "date" invalide:
    Date '1253097305362': invalid character at position 5 ('0')
    Là je suis perplexe, saurais-tu ce qui cloche?


    edit:
    Merci Spacefrog pour ta réponse, mais je ne peux pas vraiment faire plusieurs lignes d'instructions, je dois entrer ça dans une case où j'écris le nom de mon fichier, avec le tag au milieu pour avoir un nom dynamique.

    En fait je ne fais pas de programmation sur ce logiciel, mais j'utilise juste un tag

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

Discussions similaires

  1. commande DATE d'hier
    Par panzzi dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 10/07/2007, 11h47
  2. Afficher la date d'hier
    Par Olivier Regnier dans le forum Linux
    Réponses: 5
    Dernier message: 10/03/2007, 01h37
  3. [Debutant(e)] Date d'hier
    Par beshaj dans le forum Langage
    Réponses: 8
    Dernier message: 17/02/2006, 10h41
  4. Pour affciher la date d'hier
    Par CholetMan dans le forum Access
    Réponses: 3
    Dernier message: 27/11/2005, 13h06
  5. Réponses: 3
    Dernier message: 23/03/2004, 16h44

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