(1) I have a crush on her for two years.
Is the sentence correct?
I just want to make sure we can use present tense with “for two years”.
I thought “for two years” should go with present perfect tense (have + p.p.) or present perfect continuous tense (have + been + Ving).
Is it okay to say " (2) she is my friend for two years" instead of “she has been my friend for two years”?
How about “(3) I own this house for two years”? Does it make sense?
I’m a native English speaker from USA. This is what sounds most natural to my ears (contractions expanded in parentheses):
I’ve (I have) had a crush on her for two years.
She’s (she has) been my friend for two years.
I’ve (I have) owned this house for two years.
To answer your questions “I have a crush on her for two years”, “She is my friend for two years” and “I own this house for two years” all sound grammatically wrong to me, even though it is clear and obvious to me what you mean. So if you spoke those sentences to me, I would understand what you mean without problem, but I would know right away that you were not a native speaker. Hope that helps!
You are right and the original sentence is incorrect. If the crush is ongoing and started two years ago, then it is related to both past and present and this is one of the triggers for the present perfect, so the correct sentence is: “I’ve had a crush on her for two years.” Obviously if the crush is over now, it’s the simple past and the correct sentence would be: “I had a crush on her for two years.”