Have a loop run for X amount of time

one more question.

millis() is a timer from the start of your program.

Is there a way to start a new timer, based off of millis, that starts at 0.

So...

Program starts... millis starts counting away.

Some random time based on user input... start countring from 0 now, start state 2
now I have a reference, and 10 seconds after I started state 2, go back to the state 1.