How old is your battery? Most phones should last all day unless you're spending a few solid hours on the net or playing videos/games. Easiest thing to do is to buy a new battery that will last longer and an external charger. Use your old battery and bring it along as a spare. I have a new battery in my old Evo 4G and it lasted a good 14 hours even randomly using Mouse Wait all day in the park.
Can't change Iphone batteries...
