Why don't you just give the actual time until expiry? At the moment, you're proposing to tell me that the offer expires "in one day". But what does that mean?
Let's say it's 3pm on Thursday. It would be really annoying if you'd rounded up 12hr 1m to "one day", because then I could come back tomorrow morning and find the deal already expired. By the same token, the deal must have expired before 3pm on Saturday or you'd surely have told me "two days". So all you've told me is that the deal expires some time between 3pm Friday and 3pm Saturday. Or maybe you did round it and it expires some time between 3am Friday (0.5 days) and 3am Saturday (1.5 days). That's maddeningly, frustratingly imprecise and we've not even got to the part you were asking about!
Now, for the options less than an hour.
This is vague. If it's updating once a second, it's probably OK. If it's not updating, nobody knows if it's hours and minutes or minutes and seconds. (And the user might be tempted to sit around for a bit to see if it updates after a minute or two.)
Strictly speaking, even if it is updating once a second, it's still vague. Perhaps it really does mean 59h 59m but you're evil and the expiry time goes down by one minute every second! This could be the case if, for example, you were selling me a voucher that would be valid for a certain amount of time and, to pressure me into buying, the voucher lasts longer if I buy it sooner.
If it's not updating, this is still vague. The colon works like a decimal point, so it should probably mean "59 minutes and 59 sub-units of a minute (i.e., seconds)". But can I trust you to use the same logic as me? Maybe you think it means "59 somethings (i.e., hours) and 59 minutes". I shouldn't have to try to figure out your state of mind to work out what you mean: you should tell me what you mean.
This is basically the previous case but backwards. The user can infer that it means minutes and seconds because you're probably not timing to the nearest hundredth of a second and, if you meant 59.59s (i.e., a little less than fifty-nine and three-fifths of a second), you'd have used a decimal point, not a colon. But, again, why make me work all of this out instead of just telling me.
My suggestion would be to just present all times consistently as "1 day 23h 45m 6s" (or whatever abbreviations for the units you prefer) and omit any leading zeroes (so "45m 6s" rather than "0 days...").