The biggest problem with programmers is that they become so involved in programming that sometimes they lose track of reality. I've seen coders forgetting as basic things in life as drinking a glass of water or having food when they are hungry.
Getting into the zone is a very good thing, even prioritizing it against other tasks is sometimes essential, I get it. But you need to realize that some things are essential for your long term health and well being and those can't be ignored even for programming.
There is also an increasing number of coders who stretch it into late nights. Nature has a certain pattern of sleep and wakefulness, if you disturb that pattern with irregularity, the consequences could be far worse for your long term health and well being. Take a pause and try to understand for a moment: what is your goal in life with coding? You code in order to finish your project, which in turn earns you money for enjoying happiness in life.
So, what benefit do you get by working through late hours on coding when that very happiness and well being is being sacrificed? Think and meditate on it.