Some people can work longer hours than others, but I find that after working 8:30 to 5 I've had enough. I think if I tried to work longer I would just end up making stupid mistakes, causing bugs in code, with the result costing me time in the future fixing these bugs, decreasing future productivity.
I know other people that have their most productive time in the evening, maybe because others have gone home and they can concentrate on what they are working on and not getting interrupted by phone calls and emails.
I think you need to find out what works for you and use it to maximise your productivity. The issue comes when you need to work as part of a team and each person has their own habits. Over time you can reach a natural rhythm and understanding in a team without thinking about it.
It can be hard for new team members to fit into this established team mentality to begin with but over time the new team member can learn how the team works, as well as the team learning how the new team member works.