"It is already evening, he needs to go home."
Translation:Уже вечер, ему надо идти домой.
No, «должен» would mean he’s under some kind of obligation («до́лжен» can be translated with ‘must’, ‘should’, ‘he is to go home’, but not with ‘he needs’).
Why is it вечер instead of вчера? And why ему instead of он? And also, what is the difference between надо and нужно?
Why is it вечер instead of вчера?
Ве́чер is evening, вчера́ is yesterday.
And why ему instead of он?
«Надо» is not a verb, it’s actually an adverb (some scholars call it a state word, сло́во катего́рии состоя́ния). It describes a situation as a whole, you can roughly translate it as 'itʼs neccessary'.
Using the nominative он would be something 'he it’s neccessary', which is wrong. Instead, you use ему́, Dative, which roughly corresponds to to him, for him: 'for him, it’s neccessary...'.
Other words that behave like this are: тепло́ 'itʼs warm' (ему́ тепло́ — he feels warm, for him it’s warm), хо́лодно 'it's cold', поня́тно 'it's understandable, it's clear', непоня́тно 'it's not clear', et al. You don’t use «он» because they don’t require an object; but you can use a dative (ему́ 'for him', ей 'for her') with a meaning 'for him'.
On the other hand, the Dative is not even required. Нужно идти домой = It's neccessary to go home.
And also, what is the difference between надо and нужно?
Ну́жно is a bit more colloquial.