The effect of delays on a timer

Try this :

void loop() {
delay(1000); // delay in between reads for stability
Serial.println(millis());
}

You can see millis is increasing about 1000 every time even with a delay.
Since millis uses a timer it keeps counting while the delay is on, so you have no problem here.