The dates of Jewish holidays change because they follow the old Jewish calendar, which is a lunar-solar calendar that varies yearly. The standard Gregorian calendar, used worldwide for day-to-day activities, is based entirely on the passage of the Earth around the sun and ignores lunar cycles.
Each lunar cycle, from no moon to full moon and back, lasts approximately 29.5 days. Twelve lunar cycles make the Jewish year 354 days, rather than the Gregorian 365 days. This puts the two calendars 11 days out of sync each year, making holidays fall on different dates. To keep Jewish festivals properly aligned with the seasons, an entire extra month is added every two or three years. In this way, Passover remains in the spring and Sukkot in the fall, even if their Gregorian dates may vary by as much as a month. During the ancient era, months were added as needed rather than sticking to a specific schedule.
Jewish timekeeping varies in other ways from modern timekeeping. Jewish days begin and end at sundown, meaning that holidays start the evening before the listed day. This makes many Jewish holidays span two days on standard Gregorian calendars. Hours also vary depending on the length of daylight, which is divided into 12 sections to make Jewish hours. These hours also affect the observance of many Jewish holidays.