If not, why? I think it sounds awkward but I cannot be sure it's incorrect.

  • It is not strictly incorrect, but one is more likely to hear it has been happening for a while now. – Anonym May 19 '14 at 20:16

It's wrong because has happened, as the perfect tense, indicates an action that is momentary, or at least completed; whereas for a while now indicates something continuing and requires the imperfect tense. So It happened a while ago or It has been happening for a while now, but not ?It has happened for a while now.

(Many native speakers would not even notice the error, but that's no reason to accept it, any more than the fact that many people wouldn't notice if they were short-changed in a shop is a reason to accept it when it happens to you.)

  • Thanks. I had a feeling it was incorrect but I did not know enough grammar-related vocabulary to articulate why. – eso May 19 '14 at 21:14
  • This is an over-simplification of things. Durative and stative verbs as well as linking verbs work just fine with the perfect (which does not signify completion, but rather result). “The queen has ruled for five years now” is fine, as is “He's been ill for a week now”. It is only with verbs are lexically aorist-like that the perfect doesn't work with imperfective time frames. I'm not sure happen is really aoristic enough to me that the sentence here is ungrammatical: better in the progressive, but not ungrammatical in the simple perfect. – Janus Bahs Jacquet Sep 28 '14 at 21:17
  • "Many native speakers would not even notice the error"--darn, if you ain't right. I didn't even catch anything wrong with it until you pointed it out. Now I recognize that it isn't technically right, but few native speakers would catch it and it is used that way routinely. – fixer1234 Mar 4 '17 at 8:25

It has happened a while ago now.


It has been happening for a while now.

"Has happened" means it was a momentary event, which left consequences until now, but the event itself didn't last until now. Say, "Poland has joined European Union a good while ago now." Poland is still the member of EU, but the moment of joining was a decade or more ago.

"Has been happening" means a process that is continuous or repeating until now. "Ukraine has been trying to join EU for a while now". Their candidacy started a long time ago, but various reasons kept it back. They still want to join the EU, but it still doesn't happen.

Now, "for" is used to designate a period of time, "for past five years". If you want to pick a point in time, you'll use "five years ago". So, 'for' goes with continuous, 'been'. If you use past perfect, 'have done', you must indicate a point in time, or a period that ended already.

Not the answer you're looking for? Browse other questions tagged or ask your own question.