4

In JS, how can I get the date to format to MM/DD/YYYY?

new Date(Date.now() + (8 * 86400000)).toLocaleString().split(',')[0])
returns "12/1/2020"

How can I format it to "12/01/2020"?

fromDate:
(new Date(Date.now() + (1 * 86400000)).toLocaleString().split(',')[0]),
toDate:
(newDate(Date.now() + (8 * 86400000)).toLocaleString().split(',')[0])

I would like the fromDate and toDate to be:

If between 5:00 PM MST and Midnight: set fromDate to tomorrow's date , and toDate to tomorrow's date + 7 days

How can compare the currentTime to say if it is greater than 5 PM local time?

let currentTime = new Date().toLocaleTimeString('en-US', {
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: false
}); 
 
Bhoomiputra
  • 71
  • 1
  • 1
  • 10
  • 2
    look at using [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) - you'll want `en-us` locale, with 2 digit month and day, and numeric year – Bravo Nov 24 '20 at 01:14

2 Answers2

11

You can use the options argument in .toLocaleString to format your date as "MM/DD/YYYY"

var currentDate = new Date(Date.now() + (8 * 86400000))
var newDateOptions = {
        year: "numeric",
        month: "2-digit",
        day: "2-digit"
}
var newDate = currentDate.toLocaleString("en-US", newDateOptions );

console.log(newDate)

A detailed post on how to use the arguments in .toLocaleString - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

Phil
  • 157,677
  • 23
  • 242
  • 245
Harshana
  • 5,151
  • 1
  • 17
  • 27
0

This from another post here.

var currentD = new Date();
var startHappyHourD = new Date();
startHappyHourD.setHours(17,30,0); // 5.30 pm
var endHappyHourD = new Date();
endHappyHourD.setHours(18,30,0); // 6.30 pm

console.log("happy hour?")
if(currentD >= startHappyHourD && currentD < endHappyHourD ){
    console.log("yes!");
}else{
    console.log("no, sorry! between 5.30pm and 6.30pm");
}
Bhoomiputra
  • 71
  • 1
  • 1
  • 10