I would say as long as it isn't the day of, you should be fine to do it whenever. Our priest wanted to know when he lodged our notice of intention to marry (I think just for his own sake) so that was at least a month before). Personally I would do it at least a week to two weeks before.
As far as asking goes, it just depends on how you would normally ask them or even how you told them you got engaged. I have been asked via text message and over the phone and in turn I have asked over the phone and in person (I would have preferred to ask all the girls in person but just could not get the timing right with 1 of them!).
You could take them out for dinner and ask in person or buy a bottle of wine/bunch of flowers and write it in the card. Endless options