I am wondering if anyone can comment why sometimes i get return 6 and sometimes 0 for the day of the week
var date = new Date("2022-01-23");
console.log(date.getDay()); //returns 6
var date = new Date("2022-01-9");
console.log(date.getDay()); //returns 0
What do you get if you use
var date = new Date("2022-01-09");
So when you do a 2-digit day, you get the timezone-adjusted timestamp from UTC. You’re somewhere west of the prime meridian, so you got a negative offset, as i do:
> new Date("2022-01-23")
< Sat Jan 22 2022 19:00:00 GMT-0500 (Eastern Standard Time)
Note that it gave me a timestamp that is 5 hours back - making it SATURDAY THE 22nd, not Sunday the 23rd.
If i put the 9th in as a 2-digit day, I get the same:
> new Date("2022-01-09");
< Sat Jan 08 2022 19:00:00 GMT-0500 (Eastern Standard Time)
If however, I put in a single-digit day, the Date constructor has to parse it differently (because standard format is a 2 digit day: YYYY-MM-DD), and so I get a Midnight Local timestamp, as opposed to a Midnight-UTC timestamp:
> new Date("2022-01-9");
< Sun Jan 09 2022 00:00:00 GMT-0500 (Eastern Standard Time)
And now it’s Sunday.
You can force a two-digit day to return a Local-Midnight timestamp by adding “00:00:00” at the end of the date:
> new Date("2022-01-23 00:00:00")
< Sun Jan 23 2022 00:00:00 GMT-0500 (Eastern Standard Time)
if you set your date as
new Date(“2022-01-23 14:25:22”)
how do you get
as a String without time portion?
What I am actually trying to do is get a current date and find if that date is in this array
const holiday = [‘2023-10-09’,‘2023-12-25’'];
but since when I get current date using
let d = new Date()
depending on what machine this code runs this d comes with time as well and this code doesn’t work
What is the best way to get current date regardless what machine code runs and compare it to string items in my array?