Resetting Millis() to zero, reset clock

Hi,
I have solved this problem in this way:

unsigned long check_millis = 0;
long interval = 1000;
unsigned long previousMillis = 0;

void setup(){
}
void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis >= check_millis) check_millis = currentMillis;
  else {
    check_millis = 0;
    previousMillis = 0;
  }

  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;   
    //do somethings
  }
}