有些情况在过去开始,至今仍然如此——某件事在一段时间前开始,还没有结束。对于这类情况,英语使用现在完成时搭配 forsinceI've lived here for five years. She's known him since 2019. 这两个句子描述的都是从过去某个时间点开始、一直延续到现在的情况。

这与用现在完成时表达人生经历ever / never)不同。经历用法关注的是某件事是否发生过;这里关注的是一个未结束的情况持续了多长时间

快速提示: for + 时间长度for two years),since + 起始时间点since Monday)。动词形式为 have / has + 过去分词,且情况至今仍在持续。

如何构成

与所有现在完成时一样,由助动词 havehas 加上动词的过去分词形式构成:

主语 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——两者描述的是同一段时间,只是角度不同。

常见动词

这一句型最常与状态动词搭配——描述状态而非单次动作的动词:

  • beI've been here for an hour)、haveShe's had a cold since Monday)、knowWe've known each other for years)。

一些描述长期情况的动作动词也适用:

  • liveThey've lived abroad since 2018)、workHe's worked here for a decade)。

对于 worklive 等动作动词,英语也常用现在完成进行时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.

快速练习

选择 forsince,并将动词改为现在完成时:

  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 knownsince   2. have hadfor   3. havelived   4. has beensince

要点总结

  • 现在完成时have / has + 过去分词)搭配 forsince,用于过去开始、至今持续的情况。
  • for + 时间长度for two years);since + 起始时间点since Monday)。
  • for two years 和 ✅ since Monday——绝不能说 ❌ since two years
  • 持续时间用 How long…? 提问;回答可用 forsince
  • 表达这一含义不用一般现在时——❌ I live here since 2019 → ✅ I've lived here since 2019