Sure, here's some code to get you started. It will require a Business billing plan or above because it contains some HTML and JavaScript.
Add the code below to a Code Block, positioned wherever you want the day's opening hours to appear. You can amend the times and the messaging to suit your needs. Ensure that the Code Block is set to HTML.
<div class="sf-opening-hours"></div>
<script>
// Store opening hours (replace with actual shopping hours)
const storeHours = {
Monday: { open: "9:00 AM", close: "5:00 PM" },
Tuesday: { open: "9:00 AM", close: "5:00 PM" },
Wednesday: { open: "9:00 AM", close: "5:00 PM" },
Thursday: { open: "9:00 AM", close: "7:00 PM" },
Friday: { open: "9:00 AM", close: "5:00 PM" },
Saturday: { open: "10:00 AM", close: "4:00 PM" },
Sunday: { open: "Closed", close: "Closed" },
};
// Get the current day and time according to the locale specified
const today = new Date();
const currentDay = today.toLocaleDateString("en-US", { weekday: "long" });
const currentTime = today.toLocaleTimeString("en-US");
// Find the opening hours div on the page
const openingHours = document.querySelector(".sf-opening-hours");
// Check if the store is open
if (storeHours[currentDay].open !== "Closed" && storeHours[currentDay].close !== "Closed") {
const openTime = storeHours[currentDay].open;
const closeTime = storeHours[currentDay].close;
openingHours.textContent = `Today's opening hours: ${openTime} - ${closeTime}`;
} else {
openingHours.textContent = "Sorry, the store is closed today.";
}
</script>
In this simplified example, we first create a div element to hold the text that will show the opening hours. The opening hours are then defined for each day of the week. Next, we grab the current day and time, according to the locale specified. We check if the shopping centre is currently open by comparing the open and close properties of the storeHours object for the current day. It doesn't take into account users who may be located in a different timezone.
If the shopping centre is open, the div element is populated with today's opening hours. If it is closed, we display a message indicating that the shopping centre is currently closed.
If you want to style the message, you can add some CSS to Design > Custom CSS. For example, to set the text to 24px:
.sf-opening-hours {
font-size: 24px;
}
Did this help? Please give feedback by clicking an icon below ⬇️
No, I want to display them right in the body of a page. The Contact Us page for example. I don't want to manually manage the business hours on a page, it should be synced to what is entered in the BUSINESS INFORMATION section of the backend, which controls the hours in the footer on desktop already. https://www.hollenbeckpestcontrol.com/contact-us
Site URL: http://www.blackbookbar.com
Squarespace's mobile information bar includes the ability to dynamically publish your business hours. What I am looking for is a way to create a similar embed on multiples pages. Basically, I want to include the business hours in the footer, but also on some select other pages. I'd love for the data that's displayed to be pulled dynamically from the business information in my account settings. This way I don't have to remember to update the hours in multiple locations each time.
Anyone have thoughts on how to achieve this?
@cchs
Please post the URL for your site.
If your site is not public please set up a site-wide password, if you've not already done so.
Post the password here.
Adding a site-wide password is not a security breach. Please read the documentation at the link provided to understand how it works.
We can then take a look at your issue.