Get the weekday from a Date object or date string using JavaScript

I have a date string in (yyyy-mm-dd) format, how can I get the weekday name from it?

Example:

  • For the string "2013-07-31", the output would be "Wednesday"
  • For today's date using new Date(), the output would be based on the current day of week

Answers:

Answer

Use this function, comes with date string validation:

If you include this function somewhere in your project,

// 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];
}

You will be able to use it anywhere easily like this:

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

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

If invalid date string is used, a null will be returned.

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

Valid date strings are based on the Date.parse() method as described in the MDN JavaScript reference.

Demo: http://jsfiddle.net/samliew/fo1nnsgp/


Of course you can also use the moment.js plugin, especially if timezones are required.

Answer

Use below code:

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
Answer

Here are one-liner solutions but please check the support first.

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

Docs for Intl.DateTimeFormat object

Docs for localeDateString

Answer

If you do not want to write a function, just employ the user-defined format-code "NNNN". This will print the day of the week in the cell containing the date. If you really want string (rather than just having the word displayed in your spreadsheet) you can enter the formula

=TEXT(A1;"NNNN")

resulting in a string containing the weekday.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.