Gaber:
Its just "millis" really which is why I dont understand how this works. I subtract millis from millis and end up with the relative time since start...?
Your initial time (the value from millis() when you initialize time) is going to be nearly 0. All your times are still relative to when the Arduino was restarted, not relative to the last time you did something. If that's what you want, fine, but using now minus just after reset, as opposed to now, didn't really change anything.