For example, if I say "Today I have washed the dishes" or "Yesterday I have walked the dog", it comes off as wrong. This is why I understand that present perfect doesn't go with specific times. Past simple should be used.

But then, how come "I have washed the dishes today" does sound right?

Thank you.

  • While it is still 'today', the time that you washed the dishes is still in the past, as you've already washed them. Commented Sep 15, 2018 at 23:19
  • @sweet cherry you're right, but then the focus is on the past action of washing up and not so much on the result = the dishes have been done.
    – anouk
    Commented Sep 16, 2018 at 19:04
  • @anouk I stand corrected. I was focusing on the today part. Commented Sep 16, 2018 at 20:20

3 Answers 3


You can use present perfect with "today", because "today" hasn't finished yet, so it isn't regarded as past time. Yesterday is past time, so it requires past simple.

  • 1
    that would include any time period that is not over at the time of speaking: this year,this month, this week, etc.
    – Lambie
    Commented Sep 16, 2018 at 18:12

I formulate the rule so: "The time phrase in clause employing the present perfect cannot exclude the present".

"Yesterday" doesn't work with present perfect. "Last week" doesn't work either. Both of those phrases exclude the present.

"This morning" only works if it is still in the AM. When it is afternoon, "this morning" excludes the present, so use past with "this morning" when the time of the speaking is PM.

I have seen him this morning. (only if it is still AM)

I saw him this morning. (when it is PM)

"3PM" only works with the present perfect at precisely 3PM. On the stroke of 3PM it would be grammatical to say:

There! I've taken my medicine at 3PM just as I was supposed to do.

Once it is no longer 3PM (e.g. 3:01PM), use the past:

I took my medicine at 3PM just as I was supposed to do.

You could say (if you still live in London):

I have woken up at 5AM every day since I moved to London.

The relevant time phrase is since I moved to London.

This would be ungrammatical:

I have woken up at 5AM every day when I lived in London. ungrammatical


"Today I have washed the dishes" is fine whether you have "today" at the start or the end. We use the present perfect for an action that began in the past and continues into the present (including a present period of time - today, this morning/afternoon/week/month/year/decade etc), or whose effects continue into the present (it is still today). It can also be used to indicate an indefinite time: I have visited Japan (at some unspecified time in my life). As you perceive, yesterday is another day and is disconnected enough from the present that you would say "I walked the dog yesterday", although you could say "I have walked the dog this week", or "I have visited Peru this year".

Present perfect

You must log in to answer this question.