Display d'une date 2 semaines après aujourd'hui [Résolu/Fermé]

Signaler
Messages postés
46
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 août 2020
-
Messages postés
46
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 août 2020
-
Bonjour,

Pour ma boutique, j'écris dans les détails "délai de livraison entre 14 et 17 jours"
J'aimerais remplacer ces durées par des dates équivalentes "délai de livraison entre le 30 décembre et le 2 janvier" mettons

J'ai trouvé ce code pour display une date sous le format JJ/MM/AA
<p><script>// <![CDATA[
document.write(new Date().toLocaleDateString());
// ]]></script></p>

Comment puis-je me dépatouiller pour calculer une date à +14 jours et +17 jours, avec le format que j'ai indiqué au début ?

PS: je ne pense pas qu'il soit nécessaire de rentrer dans des détails de mois à 31 jours ou d'année bissextile, s'il y a une erreur d'un jour c'est pas grave :)

Je vous remercie d'avance pour les indications apportées !
Pascal

1 réponse

Messages postés
29241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 août 2020
2 695
Bonjour,

function getDatesDelai(date1,delaiMin,delaiMax){
  var result = new Array();
  if(checkIfIsValidDate(date1)){
    var nbMin = typeof(delaiMin)!='undefined' && delaiMin!=null ? delaiMin : 14;
    var nbMax = typeof(delaiMax)!='undefined' && delaiMax!=null ? delaiMax : 17;
    var D = new Date(date1);
    result['dmin'] = D.setDate(D.getDate() + nbMin); 
    result['dmax'] = D.setDate(D.getDate() + nbMax); 
  }else{
    console.log(date1 + " n'est pas une date valide !");
    result = null;
  }
  
  return result;
}

function checkIfIsValidDate(d){
  return Object.prototype.toString.call(d) === "[object Date]"  &&  !isNaN( d.getTime() ) ? true : false;
}



//et pour le tester :
var today= new Date();
console.log("Aujourd'hui nous sommes le : "+today.toLocaleDateString());

var datesDelai = getDatesDelai(today,14,20);
console.log(datesDelai);
console.log("Vous serez livré entre le "+ new Date(datesDelai['dmin']).toLocaleDateString() + " et le " + new Date(datesDelai['dmax']).toLocaleDateString());



N'oublie pas de mettre le sujet en Résolu (icone de roue crantée à droite du titre de ta question)
Messages postés
46
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 août 2020

Merci pour les indications, en effet je n'injectais pas au bon endroit.
Bon et bien nouvel essai infructueux
Dans l'état actuel des choses, il ne fait rien apparaître.

Pour moi les dates à convertir sont bien datesDelai['dmin'] et datesDelai['dmax']

Je dois peut-être changer le : var today= new Date();
mais pas sûr..

Des idées?
Merci


function getDatesDelai(date1,delaiMin,delaiMax){
  var result = new Array();
  if(checkIfIsValidDate(date1)){
    var nbMin = typeof(delaiMin)!='undefined' && delaiMin!=null ? delaiMin : 14;
    var nbMax = typeof(delaiMax)!='undefined' && delaiMax!=null ? delaiMax : 17;
    var D = new Date(date1);
    result['dmin'] = D.setDate(D.getDate() + nbMin); 
    result['dmax'] = D.setDate(D.getDate() + nbMax); 
  }else{
    console.log(date1 + " n'est pas une date valide !");
    result = null;
  }
  return result;
}

function checkIfIsValidDate(d){
  return Object.prototype.toString.call(d) === "[object Date]"  &&  !isNaN( d.getTime() ) ? true : false;
}

function dateFr(datesDelai['dmin']) {
     var jours = new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
     var mois = new Array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre");
     var date = new Date(datesDelai['dmin']);
     var message = jours[date.getDay()] + " ";   
     message += date.getDate() + " ";   
     message += mois[date.getMonth()] + " ";
     message += date.getFullYear();
     return message;
}
function dateFr(datesDelai['dmax']) {
     var jours = new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
     var mois = new Array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre");
     var date = new Date(datesDelai['dmin']);
     var message = jours[date.getDay()] + " ";   
     message += date.getDate() + " ";   
     message += mois[date.getMonth()] + " ";
     message += date.getFullYear();
     return message;
}

var today= new Date();
var datesDelai = getDatesDelai(today,14,3);

document.getElementById('datemin').innerHTML = dateFr(datesDelai['dmin']).toLocaleDateString();
document.getElementById('datemax').innerHTML = dateFr(datesDelai['dmax']).toLocaleDateString();
Messages postés
29241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 août 2020
2 695
Le principe d'une fonction .. est de ne pas avoir à la réécrire ...
Par exemple :
function addition(chiffre1,chiffre2){
  return  parseFloat(chiffre1) + parseFloat(chiffre2);
}

//je vais utiliser la fonction 3 fois
console.log (addition(1+1));
console.log (addition(10+30));
console.log (addition(8+9));


En partant de ce principe ... je te laisse corriger ton code.
Et puis ... surtout que je l'avais déjà fait pour toi.. je ne comprend pas que tu n'aies pas simplement fait un copier/coller de ce que je t'avais donné...
Messages postés
46
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 août 2020

Au début j'ai fait un copier coller, et j'ai gardé le paramètre dateAConvertir dans la fonction dateFr (puisque les bons paramètres sont rappelés à la fin) dans document.getElementbyId

Mais idem ça ne marchait pas
Donc j'ai peut-être essayé de bricoler un peu trop loin :)

function getDatesDelai(date1,delaiMin,delaiMax){
  var result = new Array();
  if(checkIfIsValidDate(date1)){
    var nbMin = typeof(delaiMin)!='undefined' && delaiMin!=null ? delaiMin : 14;
    var nbMax = typeof(delaiMax)!='undefined' && delaiMax!=null ? delaiMax : 17;
    var D = new Date(date1);
    result['dmin'] = D.setDate(D.getDate() + nbMin); 
    result['dmax'] = D.setDate(D.getDate() + nbMax); 
  }else{
    console.log(date1 + " n'est pas une date valide !");
    result = null;
  }
  return result;
}

function checkIfIsValidDate(d){
  return Object.prototype.toString.call(d) === "[object Date]"  &&  !isNaN( d.getTime() ) ? true : false;
}

function getDatesDelai(date1,delaiMin,delaiMax){
  var result = new Array();
  if(checkIfIsValidDate(date1)){
    var nbMin = typeof(delaiMin)!='undefined' && delaiMin!=null ? delaiMin : 14;
    var nbMax = typeof(delaiMax)!='undefined' && delaiMax!=null ? delaiMax : 17;
    var D = new Date(date1);
    result['dmin'] = D.setDate(D.getDate() + nbMin); 
    result['dmax'] = D.setDate(D.getDate() + nbMax); 
  }else{
    console.log(date1 + " n'est pas une date valide !");
    result = null;
  }
  return result;
}

function checkIfIsValidDate(d){
  return Object.prototype.toString.call(d) === "[object Date]"  &&  !isNaN( d.getTime() ) ? true : false;
}

function dateFr(dateAConvertir) {
     var jours = new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
     var mois = new Array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre");
     var date = new Date(dateAConvertir);
     var message = jours[date.getDay()] + " ";   
     message += date.getDate() + " ";   
     message += mois[date.getMonth()] + " ";
     message += date.getFullYear();
     return message;
}

var today= new Date();
var datesDelai = getDatesDelai(today,14,3);

document.getElementById('datemin').innerHTML = dateFr(datesDelai['dmin']).toLocaleDateString();
document.getElementById('datemax').innerHTML = dateFr(datesDelai['dmax']).toLocaleDateString();
Messages postés
29241
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 août 2020
2 695
- Tu as deux fois
function getDatesDelai


- Je t'ai donné :
document.getElementById('datemin').innerHTML = dateFr(datesDelai['dmin']);
document.getElementById('datemax').innerHTML = dateFr(datesDelai['dmax']);

et non :
document.getElementById('datemin').innerHTML = dateFr(datesDelai['dmin']).toLocaleDateString();
document.getElementById('datemax').innerHTML = dateFr(datesDelai['dmax']).toLocaleDateString();
Messages postés
46
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 août 2020

Oups désolé mauvais copier coller
Ah là j'avoue j'ai pas compris ce que ça changeait, mais l'essentiel est que ça marche !

Mille mercis à toi, bonne soirée !