With longer periods of time you should probably use "for." If the period of time is unspecified, "for is definitely required. For example, "I searched for hours!" "For" always specifies duration, so you could never say "we are going to the town for two hours from now." Idiomatically, you can use "for" to express a specific time, like "we're going to the town for 2:30." That usage of "for" means "we expect to arrive at such a time." In general, "if you can append "a day," "a week," "a month," or "a year," to the end of a sentence, you can omit the "for." "I fly six hours a week between Vancouver and LA." "They're open six hours a day." While you can use "for" in those circumstances, it usually doesn't carry any specific meaning.