Comment mettre le premier jour du mois en exposant ?

Réponses rédigées par Antoine
Dernière mise à jour : 2021-09-02 11:49:02
Question

Bonjour à tous,

à la base pour afficher une date que je récupère d'une API donc une variable j'utilise

var date = new Date(date*1000);

var options = { weekday: 'long', month: 'long', day: 'numeric' };
dateA1 = date.toLocaleDateString('fr-CA', options);

mais le er pour le premier jour n'existe pas, enfin je n'ai pas trouvé.

donc je me suis tourné vers moment.js

moment.locale('fr');

       const today = moment(date*1000);
       dddd = today.format("dddd");
       const today1 = moment(date*1000);
       Do = today1.format("Do");
       const today2 = moment(date*1000);
       MMMM = today2.format("MMMM YYYY");

(la date est décomposée pour pouvoir l'écrire comme mettre le chiffre en rouge)

le er du premier jour s'affiche, mais pas en exposant.

Comment faire pour que le premier jour du mois, le er qui suit le 1, s'affiche en exposant.

j'espère que mon explication est clair

Bien à vous

Gab

Réponse

Bonjour, vous pourriez chercher la chaine " 01 " dans la date, et si elle est trouvée, vous la remplacez par :

1<sup>er</sup>

Donc voici comment mettre le premier jour du mois en exposant, avec JavaScript et la balise HTML <sup> :

<!DOCTYPE html> 
<html> 
<head>
<meta charset="UTF-8">
<title>Comment mettre le premier jour du mois en exposant ? ?</title>
</head>
<body>
<div id="date"></div>
<script>
var date = new Date();
var options = {weekday: "long", year: "numeric", month: "long", day: "2-digit"};
var date = date.toLocaleDateString("fr-FR", options);
// fixe la date au 1er pour tester
var date = "Mardi 01 Septembre 2021";
// On vérifie si la date contient la chaine " 01 ";
var substring = " 01 ";
if (date.indexOf(substring) !== -1)
{
var date = date.replace(' 01 ', ' 1<sup>er</sup> ');
document.getElementById('date').innerHTML = date;
} 
else
document.getElementById('date').innerHTML = date;
</script>
</body>
</html>