This formula in cell E5 will return the Time Difference to previous Purchase (your cell I4) as opposed to time difference between adjacent occurrence because this formula doesn't care about the order of the data in columns C & D; it will find the time of the most recent purchase of the same product before the date/time on that row.
Your expected results show that you have confused month and day in column D, swapping those around returns your expected results.
If you want 0 instead of "First Purchase" then replace that in the formula (use a zero without the quote marks), but be aware that that would imply no time between that purchase and the non-existent previous purchase.
If you have a more recent version of Excel then you can try:
which makes it easier to adjust the formula for different ranges on the sheet, there being only one ref per range instead of multiple refs to the same range.