web-dev-qa-db-fra.com

Récupérer le jour de la semaine à partir d'un objet Date ou d'une chaîne de date à l'aide de JavaScript

J'ai une chaîne de date au format (aaaa-mm-jj), comment puis-je en obtenir le nom du jour de la semaine?

Exemple:

  • Pour la chaîne "2013-07-31", la sortie serait "mercredi"
  • Pour la date d'aujourd'hui en utilisant new Date(), la sortie serait basée sur le jour de la semaine en cours
17
dpmzmdr

Utilisez cette fonction, est livré avec la validation de la chaîne de date:

Si vous incluez cette fonction quelque part dans votre projet,

// Accepts a Date object or date string that is recognized by the Date.parse() method
function getDayOfWeek(date) {
  const dayOfWeek = new Date(date).getDay();    
  return isNaN(dayOfWeek) ? null : 
    ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][dayOfWeek];
}

Vous pourrez l'utiliser n'importe où facilement comme ceci:

getDayOfWeek( "2013-07-31" )
> "Wednesday"

getDayOfWeek( new Date() ) // or
getDayOfWeek( Date.now() )
> // (will return today's day. See demo jsfiddle below...)

Si une chaîne de date non valide est utilisée, une valeur null sera retournée.

getDayOfWeek( "~invalid string~" );
> null

Les chaînes de date valides sont basées sur la méthode Date.parse () comme décrit dans la référence JavaScript MDN .

Démo: http://jsfiddle.net/samliew/fo1nnsgp/


Bien sûr, vous pouvez également utiliser le plugin moment.js , surtout si des fuseaux horaires sont requis.

22
Samuel Liew

Utilisez le code ci-dessous:

var gsDayNames = [
  'Sunday',
  'Monday',
  'Tuesday',
  'Wednesday',
  'Thursday',
  'Friday',
  'Saturday'
];

var d = new Date("2013-07-31");
var dayName = gsDayNames[d.getDay()];
//dayName will return the name of day
6
Code Lღver

Voici des solutions à une ligne, mais veuillez d'abord vérifier le support.

let current = new Date();
let today = current.toLocaleDateString('en-US',{weekday: 'long'});
console.log(today);

let today2 = new Intl.DateTimeFormat('en-US', {weekday: 'long'}).format(current);

Documents pour l'objet Intl.DateTimeFormat

Documents pour localeDateString

5
Black Mamba

Si vous ne voulez pas écrire de fonction, utilisez simplement le code de format défini par l'utilisateur "NNNN". Cela imprimera le jour de la semaine dans la cellule contenant la date. Si vous voulez vraiment une chaîne (plutôt que d'avoir simplement le mot affiché dans votre feuille de calcul), vous pouvez entrer la formule

=TEXT(A1;"NNNN")

résultant en une chaîne contenant le jour de la semaine.

0
achimt