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