There may be better ways to do this but my approach would be to get a FIXED registration date (using Unix Timestamp) added to your data layer, which is available on all visits post registration, such as:
registrationTime = 1593172370551
You could set this in Launch, but personally I would use the data layer for reliability.
Then when a customer makes a purchase, create a "date difference" value in Launch between (Date.now() - registrationTime), which you can convert to Hours / Days / Weeks etc and set this as an EVENT / EVAR. Depending on your business need, you may want to get exact numbers (average 1.44 days) or rounded for graphing in EVARS.
I hope this helps.
Dave