相同点

  1. ago和before作副词均表示“在……(时间)之前”,但两者的内涵及用法都有相当明显的区别。
  2. before可当作介词或连词使用,ago则不能。

不同点

ago

  1. ago用来表示从现在推往过去的某一个时间点,通常与过去时连用,一般不与完成时连用,并且通常置于表示时间的词之后。

    This accident just happened five minutes ago.(这场意外就发生在五分钟之前。)

  2. 一般过去时+ago→表示过去的某一个时间点

  3. 当ago用于表示推测的句子,或配合上下文语境用来加强语气,使句子更生动地呈现“早已经”的意思时,口语上也有与完成时连用的情况。

    You might have heard this song years ago. (你可能好几年前就听过这首歌。)

  4. 过去完成时+ago→加强语气

before

  1. before则是表示从过去某一个时间点往前推算,或者泛指过去(没有搭配明确的时间点),通常与过去完成时或将来完成时连用。

    Tommy said that he had already finished his project two days before. (汤米说他两天前就已经完成了这个专案。)→从过去(两天前)往前推算 因此范例中B的正确说法应为:
    B:Never mind. I have watched it two days before.

  2. 若是事件发生在过去,但没有特定的时间点,则可单独使用before,不需连接时间副词,用来泛指过去。

    Have I met you before?(我以前见过你吗?)→泛指以前,没有特定时间点

总结

ago

  1. ago 表示从现在向前推算,过去的具体的某一个时间点。
  2. 现在 —> 过去。具体的时间点。
  3. 常用于过去式。

before

  1. before 表示从过去的某一个时间点向前推算,过去的过去的时间,不明确具体的时间点。
  2. 过去 —> 过去。不具体的时间点。
  3. 常用于完成时、将来时。