全部语法课

第 46 课 · 第 4 阶段: 时态与情态动词

For / since / ago

初级

构成与用法

for + 一段时间,since + 起始时间,时间 + ago — 多久、从何时起、多久以前

1.三个词,三种计时方式

For、since 和 ago 都和时间有关,但用法各不相同:

词后面接意思例子
for + …一段时间多长时间for ten minutes, for three years, for ages
since + …一个起点从那时到现在since 2019, since Monday, since I was a child
… + ago一段时间,放在 ago 前面距现在多久以前two days ago, ten minutes ago, a long time ago

例如:今天是星期四,阿兰星期一到了河内。同一件事可以有三种说法:

  • Lan has been in Hanoi for three days.

    阿兰在河内已经三天了。

  • Lan has been in Hanoi since Monday.

    阿兰从星期一起就在河内了。

  • Lan arrived in Hanoi three days ago.

    阿兰三天前到了河内。

两个常见陷阱:中文“从 2019 年开始(到现在)”是 since 2019——from 后面通常要接 to/until(from 2019 to 2022);“两年前”(从现在往回算)是 two years ago,不是 before two years。

2.For + 一段时间

For 回答 How long?,可以用于任何时态,不只是现在完成时。

  • I've had this phone for three years.

    这部手机我已经用了三年了。(现在还在用)

  • We lived in Hue for two years, and then we moved to Saigon.

    我们在顺化住了两年,然后搬到了西贡。(已经结束 → 一般过去时)

  • I'm staying with my cousin for a week.

    我要在表哥家住一个星期。

  • 用在现在完成时的否定句中:I haven't seen her for years。美式英语也常用 in:I haven't seen her in years。
  • for + 一段时间(for two hours)和 during + 事件或时期(during the film、during the summer)不同:during 说的是什么时候,不是多长时间。
  • for ages(口语)= 很久很久:I haven't been to the cinema for ages。

3.Since + 起点

Since 给出起点——某一天、某一年、某件事——动作从那时一直持续到现在。所以主句通常用完成时(have/has + V3 或 have/has been + -ing)。

  • My dad has worked at the hospital since 2015.

    我爸爸从 2015 年起就在这家医院工作。

  • I haven't eaten anything since this morning.

    我从早上到现在什么都没吃。

  • Binh has played football since he was little.

    阿平从小就踢足球。(since + 一般过去时从句)

  • It's been two years since I last saw Minh.

    我上次见阿明已经是两年前了。

It's been (= It has been) + 一段时间 + since + 一般过去时 这个句型在口语中很常见。英式英语也说 It's two years since…,意思相同。

4.Ago——在现在之前

Ago 放在一段时间的后面,从现在往回算。它指的是已经结束的时刻,所以和一般过去时连用,不用现在完成时。提问用:How long ago…? 或 When…?

  • Hung moved to Hanoi three years ago.

    阿雄三年前搬到了河内。

  • How long ago did you start this job? — About six months ago.

    你多久以前开始做这份工作的?——大约六个月前。

  • I called her ten minutes ago, but she didn't answer.

    我十分钟前给她打了电话,但她没接。

Ago 从现在往回算;before 从过去某个时刻往回算:She left Hanoi in 2020. She had moved there two years before(= 2018 年)。单独使用时,before 意思是“以前”:I've never been here before。

5.提问:How long…? 和 When…?

选时态之前先问自己:这件事还在继续,还是已经结束了?

问句意思回答
How long have you lived here?到现在多久了——你现在还住在这里For six months. / Since May.
How long did you live in Hue?总共多久——你现在不住那里了For two years.
When did you move here?哪个时刻In May. / Six months ago.

同样的信息可以从一种句型换成另一种:

  • I bought this bike two years ago. → I've had it for two years.

    这辆自行车我是两年前买的。→ 我已经骑了两年了。(bought → have had,不是 have bought)

  • Minh started learning the guitar in 2023. → He's been learning it since 2023.

    阿明 2023 年开始学吉他。→ 他从 2023 年起一直在学。

  • The last time I saw Hoa was in May. → I haven't seen Hoa since May.

    我最后一次见阿花是在五月。→ 从五月到现在我都没见过阿花。

6.常见错误

  • I have studied English since five years.

    I have studied English for five years.

    five years 是一段时间 → for。

  • I have lived here for 2019.

    I have lived here since 2019.

    2019 是起点 → since。

  • We met each other before two years.

    We met each other two years ago.

    “……以前”= 一段时间 + ago。

  • I have seen that film two weeks ago.

    I saw that film two weeks ago.

    ago 指已经结束的时间 → 一般过去时。

  • I live here since 2020.

    I have lived here since 2020.

    用 since 时主句要用完成时。

  • I'm waiting for an hour!

    I've been waiting for an hour!

    说到现在为止持续了多久,用完成时,不用现在进行时。

例句

  • My dad has worked at the hospital since 2015.
  • Where are you? I've been waiting for twenty minutes!
  • Hùng moved to Hà Nội three years ago.
  • I bought this bike two years ago.
AI 正在听...•App Store 和 Google Play 评分 4.7/5

和 AI 说英语 全天 24 小时

立即下载应用 — 实时发音评分、自然对话、像真人老师一样纠正。

AI 发音评分即时反馈自然对话