Honestly? Refuse. In my experience, there are very few situations where crunch time affects the bottom line. There are some, to be sure, but chances are slim that you have stumbled upon it. More likely, someone higher up got impatient and is driving this. I have worked many a Saturday nights until 3-4 am to try to launch a site on Monday, just to learn that there was going to be a month long delay because someone else didn't do something. I had a deadline of "we are launching this thing on Friday"... for 12 weeks straight (finally launched it once it was truly ready a year later).
For working weekends, I've adopted a policy of roughly one weekend a year. That's how often I believe true emergencies happen (at least for most situations; Google SRE need not apply).
Look, if it's an isolated incident, take some breaks, find something to distract and relax you, get sleep. If it's a second or third attempt to get the team to crunch hard, quit.
This makes a lot of sense to me, and has happened a few times. Very rarely is the crunch worth it, and almost always "burning the midnight oil" results in bad code/bad work. To the point where it might have been better to have been fresh and made a decision that resulted in 5 minutes work, or no work, versus slogging away at a waste of time because you're doggedly doing something that makes no sense.
On top of that, there seems to be a theme of employers trying to expect that lately, or "well, its IT, you're expected to work out of hours for free". Just refuse that and find a better employer, is my advice, if that happens too often.
Its also helpful to remember that you need to "manage up" and push back on clients or managers if you don't think deadlines are feasible given your resources.
I find it easiest to make sure people imposing deadlines understand that anything is possible given enough time and if they really need to have something done they will need narrow the scope.
IE
If someone says:
"We need X by Friday"
If its not possible, I always say:
"hats not really possible, but what I can give you is X-2 by Friday and we could build into full X in about 3 weeks assuming nothing comes up."
Then if some new project comes up I always tell the person how it is going to change "X".
ie:
If someone says:
"There is a big problem with Y we need fixed"
I say, "Ok we can fix that but its going to push back X 8 weeks".
For working weekends, I've adopted a policy of roughly one weekend a year. That's how often I believe true emergencies happen (at least for most situations; Google SRE need not apply).
Look, if it's an isolated incident, take some breaks, find something to distract and relax you, get sleep. If it's a second or third attempt to get the team to crunch hard, quit.