Will someone be kind enough to advise which of the following is correct please:
1. We have had a wonderful dinner yesterday evening.
2. We had a wonderful dinner yesterday evening.
The verb in the first sentence is in the present perfect, and we use the present perfect if we want to talk about an action that is not finished, so if you use the word"yesteday" then you are talking about something which is finished , so you'll need to use a verb in the past.
E.g. --it hasn't rained this week. (Means we still waiting for the rain until now)
-- it didn't rain last week. (the verb is in the past because we used "last week" )
does it help?
Keltouma's answer is exactly right.