yeah unless you have a higher end phone or an extended battery or an external battery 3-6 hours is about the limit.
my phone I run strava and icardio plus BT to the HRM plus BT to a speaker unit and run my music/podcasts in the background and keep the screen on. 1 hour takes about 15% of the battery so I could safely go around 6 hours to 10% charge left.
turn the screen off and I can add 50% to that. but thats a pretty nice phone with an optimized rom.
the advantage of the phone is not battery life. most people would need to add a battery pack. the advantage is the battery pack to get 10-15 hours run time on your phone costs $30 while the garmin "starts" at $250+
$500 if you want a nice unit. (the $250 garmin is not so hot) $800 for the top end unit.
now if you ride hard core and have the discretionary funds to buy the $500 or $800 garming. absolutely. go that route.
many of us don't have that much cash :-) smartphones are relatively cheap. extended batteries are dirt cheap.
even if you don't have a smart phone you can buy a samsung vitality for $40-$60 then add an $8 extended battery and your now good for 8-12 hours of run time depending on if the screen is on or off.
add another $30-$40 for an HRM ($80 new) and your doing everything the garmin does (almost) for a fraction of the price.
its all about compromise. the garmins are GORGEOUS units. but you will pay dearly for that gorgeousness :-)