赵振才教授在《英语常见问题解答大词典》增订版部分内容原文如下:当 for 引导的时间短语用来修饰具有静态意义的动词时常常可以省略:
1. They lived in China (for) several years.
2. The meeting lasted (for) two hours.
3. We stayed at the hotel (for) three weeks.
4. He has worked here (for) a year.
5. They will be in Chicago (for) a year.
当 for 与以 all 开头的名词短语连用时,必须省略 for:
She's been lying in bed all day.
但是,当 for 短语修饰动态动词时或者用于否定句时,则介词 for 不能省略。
1. I'm going away for a few days. 我要离开几天。
2. I haven't seen him for three weeks. 我有三个星期没有看见他了。
所以,CGEL 把下列句子看作是错误的:
1. × I taught her three years.
2. × I haven't spoken to her three months.
另外,当 for 用在句子开头时,一般也不能省略:
1. He lived abroad (for) six years. / For six years, he lived abroad. 他在国外住了六年。
2. He waited anxiously at the hospital (for) some time. / For some time, he waited anxiously at the hospital. 他在医院焦急地等了一会儿。