You should have set up the terms when they borrowed it. It depends on how much it is and how long it's been. If it was a small amount then I would think til their next payday. If it was a large amount then??? Either way you need to have a conversation. At some point, if it was a large amount and they can't pay it back right away, then they need to make a good faith effort and pay a set amount every week. I've learned loaning money is the best way to ruins friendship. If its a lot, you should have written up the terms and both signed it. Good luck.
If you didn't set terms, then give them long enough to get it and then ask for it...the longer it takes for you to ask, the more likely they are to "forget" they borrowed it! First rule, never loan money to a friend...it is often a destroyer of friendships if you do!
You shouldn't have to, period. Unfortunately this happens more often than not. Someone said consider anything you loan to be a gift. In other words, don't loan it if you can't afford to lose it. I think 2 months is enough, really depends on how big a loan. I've been there, it sux having to ask, if nothing else it's the principle.