Display d'une date 2 semaines après aujourd'hui

Résolu/Fermé
Pascal29992 Messages postés 90 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 18 octobre 2022 - 16 déc. 2017 à 18:15
Pascal29992 Messages postés 90 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 18 octobre 2022 - 17 déc. 2017 à 22:20
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

A voir également:

1 réponse

jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
16 déc. 2017 à 19:05
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)
0
Pascal29992 Messages postés 90 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 18 octobre 2022 4
16 déc. 2017 à 19:13
Bonjour Jordane, wow merci pour la réponse complète et rapide

Par contre une question: là ça m'a l'air d'être du CSS, je dois intégrer ça via l'interface de mon thème et je dois mettre des balises, et le langage doit être du Javascript si je ne me trompe pas

Comment je peux transposer ça ?


Est-ce que j'intègre tout ce code CSS dans le CSS personnalisé du site, puis j'appelle les variantes associées dans l'emplacement désiré (l'interface du thème), en mettant :
Délai de livraison entre <dmin> et <dmax> jours

Quelque chose comme ça ? (j'imagine sans peine que la syntaxe est fausse)

Merci pour les précisions :) !
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
16 déc. 2017 à 19:18

là ça m'a l'air d'être du CSS

Hein ? Quoi ??
Qu'est ce qui est du CSS ???
... rien de ce que je t'ai donné en tout cas. Ce n'est que du pur javascript.


Voila comment le mettre dans du html
<!DOCTYPE html>
<html>
 <head>
  <title> TEST </title>
  <meta charset="utf8">
 </head>

<body> 
 
  <div>
   Ceci est du texte fictif....
   ???
  </div>
  <div id="div_delais">
     Vous serez livré entre le 
    <span id="datemin"></span>
    et le 
    <span id="datemax"></span>
  </div>
 <script type="text/javascript">
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();
var datesDelai = getDatesDelai(today,14,20);

//ecriture dans le HTML
document.getElementById('datemin').innerHTML = new Date(datesDelai['dmin']).toLocaleDateString();
document.getElementById('datemax').innerHTML = new Date(datesDelai['dmax']).toLocaleDateString();

</script>

 </body>
</html>

0
Pascal29992 Messages postés 90 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 18 octobre 2022 4
Modifié le 17 déc. 2017 à 16:09
Excuse moi je suis une bille pour reconnaître les langages :)
Ca fonctionne, c'est super, un grand merci !

Par contre ça m'affiche "Vous serez livré entre le 31/12/2017 et le 20/01/2018"

Le format des dates me convient un peu moins : c'est possible de changer ça en "Vous serez livré entre le 31 Décembre 2017 et le 20 Janvier 2018"
(voire sans l'année)

Merci ! :)
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 4 646
17 déc. 2017 à 15:37
Tu dois convertir la date via une petite fonction
par exemple
function dateFr()

{

     // les noms de jours / mois

     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");

     // on recupere la date

     var date = new Date();

     // on construit le message

     var message = jours[date.getDay()] + " ";   // nom du jour

     message += date.getDate() + " ";   // numero du jour

     message += mois[date.getMonth()] + " ";   // mois

     message += date.getFullYear();

     return message;

}
0
Pascal29992 Messages postés 90 Date d'inscription lundi 6 novembre 2017 Statut Membre Dernière intervention 18 octobre 2022 4
Modifié le 17 déc. 2017 à 16:09
Jordane, j'ai inséré ce code dans les balises script de ton message ci-dessus, à la suite, mais ça ne convertit pas.

Tu as une idée d'où vient le problème ?
Merci :) !
0