有些情况在过去开始,至今仍然如此——某件事在一段时间前开始,还没有结束。对于这类情况,英语使用现在完成时搭配 for 或 since:I've lived here for five years. She's known him since 2019. 这两个句子描述的都是从过去某个时间点开始、一直延续到现在的情况。
这与用现在完成时表达人生经历(ever / never)不同。经历用法关注的是某件事是否发生过;这里关注的是一个未结束的情况持续了多长时间。
快速提示: for + 时间长度(for two years),since + 起始时间点(since Monday)。动词形式为 have / has + 过去分词,且情况至今仍在持续。
如何构成
与所有现在完成时一样,由助动词 have 或 has 加上动词的过去分词形式构成:
| 主语 | have / has | 过去分词 |
|---|---|---|
| I / you / we / they | have | lived, known, worked… |
| he / she / it | has | lived, known, worked… |
- I have lived in Berlin for two years.
- She has worked here since April.
在口语和非正式书面语中,主语是代词时,这些形式常会缩写:I've lived…、She's worked…、They've known…
For——持续时间有多长
For 与时间长度搭配——一段持续的时间。它回答"多久了?"这个问题:
-
for two years · for ten minutes · for a week · for a long time · for ages
-
We've been friends for twenty years.
-
I've had this phone for six months.
-
He's been ill for a few days.
Since——从什么时候开始
Since 与时间点搭配——情况开始的那个时刻。它回答"从什么时候起?":
-
since 2019 · since Monday · since April · since 9 o'clock
-
I've lived here since 2019.
-
She's known him since they were at university.
-
They've been married since June.
Since 也可以引导一个完整的从句,说明起始时刻——该从句通常用一般过去时:
- I've felt much better since I started running.
- We haven't seen them since they moved away.
For 还是 since?快速判断
区别只在于后面接的是时间段还是时间点:
| 单词 | 搭配 | 举例 |
|---|---|---|
| for | 时间长度 | for three days, for years, for an hour |
| since | 起始时间点 | since Tuesday, since 2020, since lunch |
因此:✅ for two years(时间长度),但 ❌ since two years;✅ since Monday(时间点),但 ❌ for Monday。(有时也会听到 since two years ago,其中 two years ago 是一个具体的时间点——但 for two years 通常更简洁自然。)
汉语通常用"已经……了"或"从……到现在"加现在时态来表达持续的情况:我在这里住了五年了。 英语则需要现在完成时,不能只用一般现在时:✅ I've lived here for five years,而不是 ❌ I live here for five years。另外,汉语的"了"既可表示动作完成,也可表示状态持续,因此搭配 for/since 的现在完成时强调的是持续而非完成。
提问:How long?
询问未结束情况的持续时间,使用 How long + 现在完成时:
- How long have you lived here? — For five years. / Since 2019.
- How long has she had that car? — Since last summer.
回答时既可用 for 也可用 since——两者描述的是同一段时间,只是角度不同。
常见动词
这一句型最常与状态动词搭配——描述状态而非单次动作的动词:
- be(I've been here for an hour)、have(She's had a cold since Monday)、know(We've known each other for years)。
一些描述长期情况的动作动词也适用:
- live(They've lived abroad since 2018)、work(He's worked here for a decade)。
对于 work、live 等动作动词,英语也常用现在完成进行时(How long have you been working here?)。这个形式会在 B1 阶段介绍;本文重点讲现在完成时,尤其是它与状态动词的搭配。
为什么不用一般现在时?
由于情况现在仍然成立,很多学习者容易用一般现在时——但英语需要现在完成时,因为这种情况还要追溯到过去的某个起点:
- ❌ I live here for five years. → ✅ I've lived here for five years.
- ❌ She knows him since 2019. → ✅ She's known him since 2019.
- ❌ How long do you work here? → ✅ How long have you worked here?
一般现在时(I live here)只说明现在如此;只有现在完成时(I've lived here for five years)才把现在与过去的起始点联系起来。表达这一含义时,不使用一般现在时。
常见错误
- ❌ I live in London since 2020. → ✅ I've lived in London since 2020.
- ❌ We've been married since two years. → ✅ We've been married for two years.
- ❌ She's worked here for last April. → ✅ She's worked here since last April.
- ❌ How long do you have your car? → ✅ How long have you had your car?
- ❌ I have lived here since five years. → ✅ I have lived here for five years.
快速练习
选择 for 或 since,并将动词改为现在完成时:
- They ____ (know) each other ____ 2018.
- I ____ (have) this watch ____ ten years.
- How long ____ you ____ (live) here?
- She ____ (be) ill ____ Monday.
显示答案
- have known … since 2. have had … for 3. have … lived 4. has been … since
要点总结
- 现在完成时(have / has + 过去分词)搭配 for 和 since,用于过去开始、至今持续的情况。
- for + 时间长度(for two years);since + 起始时间点(since Monday)。
- ✅ for two years 和 ✅ since Monday——绝不能说 ❌ since two years。
- 持续时间用 How long…? 提问;回答可用 for 或 since。
- 表达这一含义不用一般现在时——❌ I live here since 2019 → ✅ I've lived here since 2019。