If you use:
unsigned long interval; // Timer interval in milliseconds
unsigned long startTime = 0; // Global (or static)
.
.
.
startTime = millis();
.
.
.
if (millis() - startTime > interval)
// This runs after the interval has expired
This code works across the roll-over.