قال الإمام ابن القيم في"زاد المعاد": كانت غزوة الخندق في سنة خمس من الهجرة، في شوّال على أصح القولين؛ إذ لا خلاف أن أُحداً كانت في شوال سنة ثلاث، وواعد المشركون رسول الله صلّى الله عليه وسلم في العام المقبل وهي سنة أربع , ثم أخلفوه لأجل جدب السنة، فرجعوا، فلما كانت سنة خمس جاءوا لحربه. هذا قول أهل السير والمغازي، وخالفهم موسى بن عقبة وقال: بل كانت سنة أربع. قال أبو محمد ابن حازم: وهذا هو الصحيح الذي لا شك فيه. واحتج عليه بحديث ابن عمر في"الصحيحين": أنه عرض على النبي صلّى الله عليه وسلم يوم أُحد وهو ابن أربع عشرة سنة فلم يجزه، ثم عرض عليه يوم الخندق وهو ابن خمس عشرة سنة فأجازه. قال: وصح أنّه لم يكن بينهما إلا سنة واحدة. وأجيب عن هذا بجوابين: أحدهما - أن ابن عمر أخبر أن النبي صلّى الله عليه وسلم رده لما استصغره عن القتال، وأجازه لما وصل إلى السن التي رآه فيها مطيقاً، وليس في هذا ما ينفي تجاوزها بسنة أو نحوها.
والثاني - أنه لعله كان يوم أحد في أول الرابع عشرة , ويوم الخندق في آخر الخامس عشرة.
ثم قال ابن القيم رحمه الله: وكان سبب غزوة الخندق، أن اليهود لما رأوا انتصار المشركين على المسلمين يوم أُحد، وعلموا بميعاد أبي سفيان لغزو المسلمين، فخرج لذلك ثم رجع للعام المقبل، خرج أشرافهم كسلام بن أبي الحقيق، وسلام بن مشكم، وكنانة بن الربيع وغيرهم إلى قريش بمكة، يحرضونهم على غزو رسول الله صلّى الله عليه وسلم، ويوالونهم عليه، ووعدوهم من أنفسهم بالنصر لهم، فأجابتهم قريش، ثم خرجوا إلى غطفان فدعوهم فاستجابوا لهم، ثم طافوا في قبائل العرب يدعونهم إلى ذلك، فاستجاب لهم من استجاب.