Home > Enterprise >  Grabbing Minutes Hours for Opening / Closing Times
Grabbing Minutes Hours for Opening / Closing Times

Time:08-02

I have some code set up to display a different message based on the opening / closing time. It works great, but the issue is the opening hours are 7:30am not just 7am. I have tried adding getMinutes (thehours < 7 getMinutes <= 30) but it doesn't seem to work.

let date = new Date();
let dayOfWeekNumber = date.getDay();
let nameOfDay;
let quote;
let thehours = date.getHours();
let theminutes = date.getMinutes();

switch(dayOfWeekNumber){
    case 0: 
        nameOfDay = 'Sunday';
        if (thehours >= 0 && thehours < 7) {
            quote = 'Closed Today - Opens Monday at 7:30am';
        }
        break;
    case 1:
        nameOfDay = 'Monday';
        if (thehours >= 0 && thehours < 7) {
                quote = 'Closed Now - Opens at 7:30am';

            } else if (thehours >= 7 && thehours < 18) {
                quote = 'Open Now - Closes at 6pm';

            } else if (thehours >= 18 && thehours < 23) {
                quote = 'Closed Now - Opens tomorrow at 7:30am';
            }
        break;
    case 2:
        nameOfDay = 'Tuesday';
        if (thehours >= 0 && thehours < 8) {
                quote = 'Closed Now - Opens at 7:30am';

            } else if (thehours >= 8 && thehours < 18) {
                quote = 'Open Now - Closes at 6pm';

            } else if (thehours >= 18 && thehours < 23) {
                quote = 'Closed Now - Opens tomorrow at 7:30am';
            }
        break;
    case 3:
        nameOfDay = 'Wednesday';
        if (thehours >= 0 && thehours < 8) {
                quote = 'Closed Now - Opens at 7:30am';

            } else if (thehours >= 8 && thehours < 18) {
                quote = 'Open Now - Closes at 6pm';

            } else if (thehours >= 18 && thehours < 23) {
                quote = 'Closed Now - Opens tomorrow at 7:30am';
            }
        break;
    case 4:
        nameOfDay = 'Thursday';
        if (thehours >= 0 && thehours < 8) {
                quote = 'Closed Now - Opens at 7:30am';

            } else if (thehours >= 8 && thehours < 18) {
                quote = 'Open Now - Closes at 6pm';

            } else if (thehours >= 18 && thehours < 23) {
                quote = 'Closed Now - Opens tomorrow at 7:30am';
            }
        break;
    case 5:
        nameOfDay = 'Friday';
            if (thehours >= 0 && thehours < 8) {
                quote = 'Closed Now - Opens at 7:30am';

            } else if (thehours >= 8 && thehours < 18) {
                quote = 'Open Now - Closes at 6pm';

            } else if (thehours >= 18 && thehours < 23) {
                quote = 'Closed Now - Opens tomorrow at 7:30am';
            }
        break;
    case 6:
        nameOfDay = 'Saturday';
        if (thehours >= 0 && thehours < 7) {
            quote = 'Closed Now - Opens at 7:30am';
        } else if (thehours >= 7 && thehours < 12) {
                quote = 'Open Now - Closes at Noon';
        } else if (thehours >= 12 && thehours < 23) {
                quote = 'Closed Now - Opens at 7:30am Monday';
        }
        break;

}

    jQuery('.openingCincinnati').append(quote);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<h2>Cincinnati, Ohio</h2>
<div ></div>
</div>

So - the question. How do I display the text using half hours?

CodePudding user response:

This can be vastly simplified and you can just set up the time of opening and closing

We would need a timezone too if you want to service other timezones but that is more code.

const getQuote = () => { 
  let now       = new Date();
  let year      = now.getFullYear();
  let month     = now.getMonth();
  let date      = now.getDate();
  let dayNumber = now.getDay();
  let opening   = new Date(year,month,date,7,30,0,0).getTime();
  let closing   = new Date(year,month,date,18,0,0,0).getTime();
  let closed    = now.getTime() < opening || now.getTime() >= closing;
  let openText  = 'Open Now - Closes at 6pm';
  if (dayNumber === 0) return 'Closed Today - Opens Monday at 7:30am';
  if (dayNumber === 6) return closed ? 'Closed Now - Opens Monday at 7:30am' : openText;
  return closed ? 'Closed Now - Opens Tomorrow at 7:30am' : openText;
}

$('.openingCincinnati').append(getQuote());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<h2>Cincinnati, Ohio</h2>
<div ></div>
</div>

  • Related