Hace + time + que
Use the following structure with a present tense verb to express how long something has been in progress. (The action started in the past and is still going on.)
Hace + length of time + que + verb in present tense
To express how long it's been since something (has) happened, use the following construction. (The action is no longer in progress.) Note that the verb hace does not change.
Hace + length of time + que + verb in preterite
Use the following structure with a present tense verb to express how long something has been in progress. (The action started in the past and is still going on.) You can switch the order of the clauses by removing the que and inserting desde.
verb in present tense + desde hace + length of time
To express how long it's been since something (has) happened, use the following construction. (The action is no longer in progress.) Note that the verb hace does not change. You can switch the order of the clauses by dropping que. In this case, the underlying meaning is the same, but the sentences translate better into English as ago.
verb in preterite + hace + length of time