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 :

Récupérer la date de lundi et vendredi


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 69
    Points
    69
    Par défaut Récupérer la date de lundi et vendredi
    Bonjour,
    J'ai une fonction PHP et je veux la convertir en JS, pouvez-vous m'aider ?

    En fonction d'une date , je veux récupérer la date de lundi et vendredi.
    Exemple : je donne la date 22/10/2013, la fonction doit retourner lundi 21/10/2013 et vendredi 25/10/2013.

    Merci de votre aide.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if(isset($_GET['valCalend'])){
        list($d, $m, $y) = explode('/', $_POST['calendrier']); 
        echo 'DEBUT : '.debutsem($y,$m,$d).' - FIN : '.finsem($y,$m,$d);
    }
    function debutsem($year,$month,$day) {
     	$num_day      = date('w', mktime(0,0,0,$month,$day,$year));
     	$premier_jour = mktime(0,0,0, $month,$day-(!$num_day?7:$num_day)+1,$year);
     	$datedeb      = date('m/d/Y', $premier_jour);
        return $datedeb;
    }
    function finsem($year,$month,$day) {
     $num_day      = date('w', mktime(0,0,0,$month,$day,$year));
     $dernier_jour = mktime(0,0,0, $month,5-(!$num_day?5:$num_day)+$day,$year);
     $datedeb      = date('m/d/Y', $dernier_jour);
        return $datedeb;
    }

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var date = new Date();
    var dateMonday = date.setDate(date.getDate()-date.getDay()+1);
    var dateFriday = date.setDate(date.getDate()-date.getDay()+5);
    En gros le dernier chiffre tu le remplaces par le numéro du jour de la semaine
    0 = dimanche,
    1 = lundi
    5= vendredi
    6 = samedi
    7 = dimanche semaine d'après

  3. #3
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 505
    Points
    505
    Par défaut
    Bonjour,

    Mon code est certainement perfectible, mais ça pourra surement vous aider :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var date=$('#date').val();
    alert(getMonday(date));
    alert(getFriday(date));
     
    function getMonday(d) {
       d = new Date(d);
       var day = d.getDay(),
       diff = d.getDate() - day + (day == 0 ? -6:1)+1;
       var dateok=new Date(d.setDate(diff));
       var jour=dateok.getUTCDay();
       return "Lundi "+dateok.getUTCDate()+"/"+dateok.getUTCMonth()+"/"+dateok.getUTCFullYear();
    }
    function getFriday(d) {
       d = new Date(d);
       var day = d.getDay(),
       diff = d.getDate() - day + (day == 0 ? -2:5)+1;
       var dateok=new Date(d.setDate(diff));
       return "Vendredi "+dateok.getUTCDate()+"/"+dateok.getUTCMonth()+"/"+dateok.getUTCFullYear();
    }

  4. #4
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 69
    Points
    69
    Par défaut date format
    J'ai une date sous cette format : dd/mm/yyyy et je veux récupérer aussi sous cette format

    saymoneu, tes méthodes ne fonctionne pas.

    Encore merci,

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    En cherchant un peu, oui, tu devrais y arriver...

  6. #6
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    As-tu bien compris le code d'arnogues...

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // renvoie la date actuelle : Tue Oct 29 2013 18:13:19 GMT+0100 (Paris, Madrid)
    var date = new Date(); 
     
    // Ceci va positionner la date au lundi précédent et renvoie un timestamp. ex : 1382980399054
    var dateMonday = date.setDate(date.getDate()-date.getDay()+1); 
     
    // Ceci va positionner la date au vendredi suivant et renvoie un timestamp. ex : 1383325999054
    var dateFriday = date.setDate(date.getDate()-date.getDay()+5);

    Il suffit donc de convertir le timestamp en date :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     // soit new Date(1382980399054) == Mon Oct 28 2013 18:13:19 GMT+0100 (Paris, Madrid)
    var dateFormatMonday = new Date(dateMonday);
     
    // faire la même chose avec vendredi ...

    Du format date du lundi, tu le convertis en format de ton choix. Il y a une fonction magique toLocaleDateString qui te retourne la date au format jj/mm/aaaa

    Ce qui donne au final :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var date = new Date();
    console.log(new Date(date.setDate(date.getDate()-date.getDay()+1)).toLocaleDateString()); // 28/10/2013
    console.log(new Date(date.setDate(date.getDate()-date.getDay()+5)).toLocaleDateString()); // 1/11/2013

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Points : 69
    Points
    69
    Par défaut
    Bonjour,
    J'avais compris la solution de Arnogues mais je n'arrivais pas à convertir la date comme je voulais.
    Merci à tout le monde pour vos solutions.

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

Discussions similaires

  1. Récupérer la date du lundi de la semaine courante
    Par omar24 dans le forum Langage
    Réponses: 11
    Dernier message: 07/01/2022, 10h17
  2. Réponses: 3
    Dernier message: 07/09/2010, 20h57
  3. récupérer la date du lundi et du vendredi
    Par ballantine's dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/01/2010, 14h58
  4. Réponses: 1
    Dernier message: 06/11/2009, 13h52
  5. Réponses: 3
    Dernier message: 07/09/2005, 16h20

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