// Adds dimensions UUID, Author and Topic into GA4
Thursday, June 4, 2026
29.4 C
Singapore

SG to JB: Best times for a smooth car ride to Johor Bahru without getting stuck in long traffic jams

SINGAPORE: Driving your car to Johor Bahru (JB) from Singapore (SG) is a popular option for Singaporeans who enjoy cheaper shopping, doing their hair, getting beauty treatments, or just having some good old-fashioned road trip fun & adventure!

However, the journey can become tiring due to frequent traffic congestion at the border checkpoints, particularly at the Causeway and Second Link. According to MoneySmart, here are the best times to travel to JB by car to help you avoid long waits and make your trip more enjoyable.

Travelling to JB by car on weekdays

On weekdays, traffic patterns are generally more predictable, allowing for easier planning. If you want to avoid the heaviest traffic, the best times to cross into JB are before 8 am, between 12 pm and 5 pm, or after 8 pm.

During these times, traffic tends to be lighter, which means a quicker and smoother crossing.

It’s important to avoid the peak hours, particularly during the morning rush from 7 am to 9 am and the evening rush from 6 pm to 8 pm. These are the times when commuters flood the checkpoints, leading to significant delays.

The Causeway and Second Link often experience the worst congestion during these hours. In addition, many Malaysians return home for the weekend, causing traffic to spike, so it’s best to avoid Friday evenings.

Travelling to JB by car on weekends

Weekends are busier, as many people take advantage of their time off to visit JB. If you’re planning to drive on a Saturday, it’s best to steer clear of the 8 am to 11 am window, when traffic is usually at its worst.

Most weekend travellers hit the road during these hours, resulting in longer waits at the border. To avoid this, consider leaving early, before 7 am, or later in the afternoon, after 1 pm, when traffic usually dies down.

Returning from JB on a Saturday can also be tricky. The evening rush, especially after dinner, sees a surge in traffic as many travellers head back to Singapore. To avoid getting caught in the jam, aim to return before 6 pm or after 11 pm when traffic is lighter.

Sundays present the same challenge, with traffic building up as early as 11 am to 2 pm and peaking between 5 pm and 11 pm as weekend visitors return to Singapore. To avoid the worst traffic, consider returning after midnight or early in the morning before 8 am.

Travelling to JB by car on public holidays

Public holidays can be particularly congested, as Singaporeans and Malaysians make the most of the long weekends. If you’re travelling during a public holiday, plan ahead. Starting your journey a day before the holiday or early in the morning on the day itself can help you beat the rush.

The later you leave, the more likely you will face heavy traffic at the border.

Remember, the key to a comfortable trip to JB is timing, so follow these tips & tricks to make your trips more enjoyable by spending less time in traffic and more time at your destination. /TISG

Featured image: Depositphotos

Read also: 70% cheaper in JB than SG: Add these cheap cleaning supplies to your shopping list on your next trip

- Advertisement -

Hot this week

‘I will love you until my final breath’: Controversial City Harvest pastor Kong Hee marks 40th anniversary of meeting Sun Ho

Kong Hee wrote a tribute post to his wife, Sun Ho, on her birthday, June 1, which is also the 40th anniversary of when they first met. "I love you, and I will love you until my final breath. And in...

Netizen alarmed by unusual flock of birds at someone’s HDB flat, urges public to report to the authorities

On Reddit, a netizen shared: May I present to you...whatever tf this is. I've already reported it to the authorities. I suggest you do the same. This is probably the first time I've seen this many ...

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