The Hadith about when the child is to be named falls into two classes:
1. Those which mention naming the child on the seventh day after the birth. Like the Hadith of Samurah - (RA) who said: Allah's Messenger (SAW) said:
"Every child is held in pledge for his' Aqeeqah which is sacrificed for him on his seventh day, and he is named on it and his head is shaved" (Reported by Ahmad, Abu Dawud and the remaining 3 Sunan)
The Hadith that the Messenger (SAW) ordered that the child be named on the seventh day, that the harm be removed from him and the sacrifice (the 'Aqeeqah) be performed. (Reported by Al-Tirmidhee)
2. And those which indicate naming the child on the day of its birth. From these is the Hadith of Anas (RA) who said: Allah's Messenger (SAW) said:
"A boy was born to me this night and I have given him the name of my forefather Ibrahim. (Reported by Muslim and Abu Dawud)
Allah's Messenger (SAW) also named 'Abdullaah ibn Abee Taihah. (Al-Bukhari and Muslim) Another baby was brought to him after birth and he called it al-Mundhir (Al-Bukhari and Muslim) and there are many examples like this.
So from the previous Hadith we can see that the time for giving the name is something flexible - and all praise and thanks are for Allah (SWT) - so it may be named on the day of the birth, or delayed until the seventh day after birth - just as it is allowed between the two and later on. However, the time when it is recommended to name the child is the seventh day after the birth since that occurs in the words of the
Prophet (SWT) and so it is taken to be a recommendation, and the Hadith mentioning the day of its birth report the Prophet's (SAW) action - and are, therefore, taken to show & what is permissible.