在英语学习中,did(一般过去时)和 have done(现在完成时)是两个常被混淆的时态。它们都涉及“过去”的动作,但表达的意义和使用场景截然不同。
表示在过去某个具体时间发生的动作或状态,强调动作发生在过去,且与现在无关。
表示动作发生在过去,但对现在有影响,或动作从过去持续到现在。常与 already, just, ever, never, yet 等副词连用。
❌ I have done my homework yesterday. (错误!yesterday 是具体过去时间)
✅ I did my homework yesterday.
✅ I have done my homework. (不说具体时间,强调已完成)
记住口诀:“did 看时间,have done 看影响”。当你谈论一个与现在无关的过去事件时,用 did;当你想表达过去动作对现在的影响或经验时,用 have done。