Today is Thursday. Yesterday, the sun went down at 7 p.m. Wednesday and rose at 6:30 a.m. Thursday. That was "last night."
"Last night, I had the strangest dream."
"Last night, the sky was clear and I saw the moon and Mars."
Last night is in the past.
Right now, it is daytime.
Today, the sun will go down at 7 p.m. and rise at 6:30 a.m. That period of time, the night that is coming, is "tonight."
"Tonight, we will have spaghetti and meatballs for supper."
"Tonight, I want to get to bed early."
Because it is daytime, "tonight" is in the future.
Pretend I am posting this later, when it gets dark. Pretend it is 8 p.m. Thursday night.
Then "tonight" can be the present, or all of the nighttime hours before and after the present.
"The sky is cloudy tonight" (now).
"Is there anything good on television tonight?" (now and in the next few hours).
"That was a good supper tonight" (a little while ago).
I'm pretty sure the answer is "over the Christmas holiday".
As Lauren pointed out, tonight CAN be used with the past tense (as can "today", e.g. "Today I went to a cinema"), but its much less common. Usually tonight means "later in the evening".