"For as Jonah was three days and three nights in the belly of a whale, so the Son of Man will be three days and three nights in the heart of the earth." Matthew 12:40
The problem is neither with Jesus prediction nor with the Bible. The problem is with our tradition that misses a very important fact of the events of that week in Jesus ministry.
The Bible tells us that Jesus was crucified on the Day of Preparation for the Passover Sabbath. (Mark 15:42; Luke 23:54; John 19:14, 31)). The Hebrew calendar begins each day at the evening twilight of the previous day. For example, the Jewish Friday begins at what would be the beginning of Thursday evening on our calendars. The Day of Preparation for Passover was always the 14th of the Hebrew month Abib (also known as Nisan). Passover began that evening, the 15th.
Each year Passover fell on a different day of the week. Passover was always a Special Sabbath. So except for those years when Passover happened to fall on Saturday, which was the regular weekly Sabbath, there would be two Sabbaths during Passover week.
Jesus was raised from the dead on the morning after the regular weekly Sabbath. It is never said that he was raised the morning after the Passover Sabbath. This would indicate that, as was most often the case, Passover did not fall that year on the regular weekly Sabbath.
The events of this most detailed week of Jesus life come together perfectly if in that year the Passover Sabbath fell on Friday. That would place Jesus crucifixion on the day of Preparation for the Passover (Thursday); followed by the Passover Sabbath (Friday); followed by the weekly Sabbath (Saturday); followed by the resurrection Sunday morning. Jesus was in the grave, as he had predicated, three days and three nights.
The problem with our tradition is that those who established the tradition failed to realize that there are two Sabbaths during Passover week rather than just one.
Commentary by Steve Casey, Stonewall, LA