语境不同,采用的时态也不同的。
一、比如说,咱俩上周打羽毛球了,我今天跟A说的时候就可以说:We played badminton for three hours last week.
上周我俩打羽毛球打了三个小时。
二、假如我们现在正在打羽毛球,从开始到现在已经三个小时了,就可以说:We have palyed badminton for three hours.
三、不可以用had,因为for是表示一段时间的持续。过去完成时用来表示过去已经完成的动作,这个动作已经完成,已经结束,还怎么持续呢?已经完成的,就不能用for了。
若有问题,欢迎提问。希望帮到你。
for 在英语中并没有硬性要求一定要跟完成时连用。
仅仅表示一个动作或者状态的持续的时间段
完成时表示,过去发生的事情,对现在有影响,或者动作状态持续到现在。
I have finished my homework.
She has divorced.
We have successfully complete the primary test of the new product.
I have been in London for two weeks.
They have learned English for years.
动作都是过去发生的,强调对现在的影响(简单的说,就是现在聊过去,翻译成“已经”或者“之前”)
过去完成时:表示过去的过去,也就是从过去的角度看,从当时角度来说之前发生的动作。
一般出现在复合句中,或者上下文中。
The boss of the jewerly shop had the workers decorated the show room. Suddenly someone smashed the glass.
We played badminton for three hours.
陈述客观事实,就是想告诉你一个事实:我们打了3个小时羽毛球了。
We have played badminton for three hours.
强调过去某个动作一直持续到现在,还有可能继续持续下去,或者是对现在产生的影响(比如说我们都打了3个小时,还要不要继续,或者去休息)
过去完成时表示过去的过去,谓语动词的动作发生在过去的某个时间之前,句中一般有具体的过去时间状语,因此该句不能用过去完成时
eg: He had left his bag on the 4:30 train.