I think I read once somewhere that it depends on how much sun exposure you get in the day. If you’re not getting very much sun exposure, the sunscreen doesn’t break down as much, and it can last longer. If you’re getting maximum sun exposure, then you need to re-apply after 2 hours because the sunscreen will break down and stop being effective at that point. The back of the bottle assumes maximum sun exposure.
I’m not sure if that’s correct, but from my own personal experience, I apply sunscreen just once in the morning and though I am very prone to sunburn/freckles on a normal day of sun exposure, with sunscreen applied I tend to avoid both.