Charging overnight will not hurt your phone. Once it reaches full charge it drops down to trickle charge to keep the charge at 100%.
If you are having a problem with fast battery discharging you might need to see what is turned on in settings. Push email is one of the biggest culprits for killing a battery. I have all my emails set to manually fetch which helps.
GPS is also a big battery hog. I reduce the number of features that rely on GPS as well.
Notifications can also drain the battery. Keep them to the ones that you really need.
Once you have your phone charged to 100% use it over the course of a day and really drain it down to as close to 0% as you can. Once it is "Dead" charge it overnight. 8 hours seems to be the best amount of time. This will get it to 100% .
After you have it fully charged restart it, hold both Home and Power / Sleep buttons down until the apple logo appears. Release both buttons and wait for the phone to restart itself. This seems to re-calibrate the battery meter so you get an accurate read on how the phone is actually discharging.
I drain and do an full overnight charge on my phone once a month to keep the battery in good shape and the meter calibrated.