I think 2 hours is perfect and generally seems to be the agreed upon time in our area for birthday parties. If there is a time set it's something like 10-12 or 2-4 or if they're serving lunch food 11-1. If the party is at a park or somewhere like that then, of course, the invitees can stay as long as they like, but 2 hours is spot on IME.
Also, weekends, definitely. My kids have been through the b-day party thing many times and unless your child expresses a preference I'd definitely do an afternoon party on a weekend day.
My dd2 says she really wants her b-day party on her b-day which does not fall on a weekend this year so I'm going to have to see if she's really set on that or if her mind can be changed.
I think you're much more likely to run into conflicts with school-age kids on a weekday. If both parents work the kids are probably in an afterschool program which can last up until 5:30. Many kids have activities after school and in the evening— Tae Kwan Do, dance, soccer, etc. Even if this is for a younger child, the friends they'd like to invite may have an older sib, etc.
In general I thinkn weekends work better, but I think if this is a small party with just a few good friends there's nothing wrong with feeling them out first, especially the closest friends. I often do this. Even if we're inviting the whole class I want to make sure that my kids' bestest friends can come so I'll talk to them about a couple of times and see which works best for them and then the rest of the invitees can come if they can and I know my kid will be happy with her closest friends there. So, I'd ask the actual invitees instead of MDC>