有些情况在过去开始,至今仍然如此——某件事在一段时间前开始,还没有结束。对于这类情况,英语使用现在完成时搭配 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,并将动词改为现在完成时:

  1. They ____ (know) each other ____ 2018.
  2. I ____ (have) this watch ____ ten years.
  3. How long ____ you ____ (live) here?
  4. She ____ (be) ill ____ Monday.
显示答案
  1. 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。