I know the basic rule that we use haven't to speak about something that started in the past and is still on-going in the present. We use didn't to speak something that was in the past.

But with time periods is didn't also possible and correct? Are they different?

  • I haven't seen him for five years.
  • I didn't see him for five years.


  • I haven't played since two days ago.
  • I didn't play since two days ago.
  • Here, it's said the following: In British English, the use of Simple Past and Present Perfect is quite strict. In American English, you can normally use Simple Past instead of Present Perfect. Apr 19, 2017 at 9:18

1 Answer 1


An excellent question! Yes, you can use didn't with time periods, and yes, they do mean different things. I think the key thing to remember is that I have(n't) is a present tense, while I did(n't) is a past tense.

I haven't seen him for five years: As of right now, I have not seen him at any time during the past five years.

I didn't see him for five years: There was a period of five years, entirely in the past, during which I did not see him. This implies that I did see him again at the end of the five years.

The phrase with since is a little different, because since implies an effect that begins at one point in time and continues until another point in time, and ago means "before the present time".

I haven't played since two days ago: Two days before today I played, but I have not played in the span of time since then.

I didn't play since two days ago: This one is not correct - remember, didn't is a past tense, but "ago" means that we're talking about something leading up to the present. If you're talking about "time leading up to the present", then the correct way to phrase is is "I haven't played", which is your first example. If you mean "at some time in the past", then the correct way to phrase it would be "I hadn't played since two days before."

Apparently some grammar references say that "since...ago" is not correct, but there's a lot of argument about it, and it sounds OK to this US English speaker. A slightly more natural way to phrase it would be "I haven't played for two days", but "since...ago" doesn't sound wrong to me.

  • So "I didn't play since two days ago." is absolutely wrong? Apr 19, 2017 at 13:32
  • But "I didn't played for two days" is like the first example of Didn't and is correct and means a period in the past? Apr 19, 2017 at 13:34
  • 2
    (Speaking as a native BrE speaker) "since...ago" sounds "wrong" to me (although I would understand the meaning). Using "for two days" sounds much better.
    – SteveES
    Apr 19, 2017 at 13:37
  • A slight caveat to your answer, you can use the phrase "for the last" with "didn't" to imply that the period in the (simple) past was immediately in the past. I'm not sure it works well with the first example, but I think "I didn't play for the last two days" is OK.
    – SteveES
    Apr 19, 2017 at 13:40
  • @SovereignSun "I didn't play for two days" means (at some point in the past, implying that it is not still happening, so probably not immediately in the past) no playing occurred for two days.
    – SteveES
    Apr 19, 2017 at 13:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .