// Adds dimensions UUID, Author and Topic into GA4
Monday, June 22, 2026
27.2 C
Singapore

It’s June! Best time to hit the beach in Johor Bahru!

SINGAPORE: Are you thinking of a trip across the Causeway for some shopping, makan, or maybe a restful time of Vitamin Sea?

More and more, Johor Bahru (JB) is turning out to be THE place to go for a weekend getaway, thanks to the strong SingDollar and a tourism push from Malaysia’s government.

However, since thousands of other Singaporeans may have the same idea, when and how to go may be key to ensuring your vacay, whether a day trip or a few days’ stay, is enjoyable.

Screenshot 2024 03 01 at 3.41.36 PM
Photo from Unsplash

Worry not, fam, we gotchu. Here are our best tips and tricks for your next enjoyable journey to JB.

Best months to go to JB

Because JB is so close to Singapore, you can expect weather conditions to be pretty similar. This means it’s hot all year round, but some months are hotter than others, so dress accordingly.

If you’re hitting the beach, you can go practically any time, but the best months for beachgoers are between June and September.

Check the weather for rain before you make plans. November and December, and sometimes April, are the rainiest months.

Screenshot 2024 03 01 at 3.42.09 PM e1718562304790
Photo from Unsplash

Tourism in JB is highest in December, March, and April, and you can expect flight and accommodation prices to be higher in these months. November is the month with the fewest tourists.

Read also: 5 best hotel rates in JB await you! — Leap into Malaysia for your next post-leap day getaway

Best time to leave if you’re driving

It’s well documented that the traffic to JB can last four hours or even longer of your precious time, so planning well is important.

On weekdays, your best bet is to leave early; around 5 am would be optimal.

Remember that more than 300,000 people cross the land border between Singapore and Malaysia daily, making it one of the busiest in the world.

There is a traffic dip between 12 noon and 3 pm if you want to take advantage of that. The worst time to go would be between 5 and 9 pm.

On Saturdays, before 5 am is also the safest time to go, and traffic is usually light on Sundays.

When returning from JB, you might want to head to Singapore between 1 pm and 3 pm on weekdays and after 8 pm to avoid the crush.

Saturday mornings to Sunday early afternoon should not be a problem, BUT by 2 pm on Sundays, traffic builds up significantly and, at times, does not let up until past 11 pm.

Screenshot 2024 03 01 at 3.41.50 PM
Photo from Unsplash

Pro-tip: Check the One Motoring website or the ICA Facebook page for real-time traffic info before you go.

Travel hack: Take the ferry or a shuttle

Did you know you can take a painless, traffic-less ferry ride to JB and be there in 45 minutes? It’s the perfect solution for day-trippers; read it all here.

Then there’s also the KTM Shuttle Tebrau that brings Singaporeans to JB for less than S$5 in a five-minute trip. Tickets for the shuttle, which can be booked here, are largely sold out on weekends and holidays, so make sure to plan ahead! /TISG

Read related: Where to go in JB for shopping, eating, sightseeing and more!

- Advertisement -

Hot this week

Singapore insect problem: Why flying ants, bees, and beetles keep ending up in your home, and how to get them out humanely—Experts explain

From swarming flying ants to wandering bees and clumsy beetles, experts say most insect visitors are lost rather than invading your home

Singapore charity chairman shines spotlight on many families caring for young people with autism who face difficult realities

He was reacting to a recent case where the court acquitted a youth with autism and mental condition who assaulted his parents.

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks