Some people insist that you should use may (present tense) when talking about a current situation and might (past tense) when talking about an event that happened in the past. For example:
I may go home early if I’m tired. (present tense)
He might have visited Italy before settling in Nuremberg. (past tense)
In practice, this distinction is rarely made today and the two words are generally interchangable:
I might go home early if I’m tired.
He may have visited Italy before settling in Paris.
But there is a distinction between may have and might have in certain contexts. If the truth of a situation is still not known at the time of speaking or writing, either of the two is acceptable:
By the time you read this, he may have made his decision.
I think that comment might have offended some people.
If the event or situation referred to did not in fact occur, it �s better to use might have:
The draw against Italy might have been a turning point, but it didn �t turn out like that.