Troble Reading Vibration Sensor

Okay, I am trying to work with the millis() instructions and I have been looking over the different examples. I am still having issues getting my 90 second timer to work. As far as I can tell, I have done everything exactly the same as the examples and I get what is going on in the examples but its not helping me solve my problem.

millis() gives me the current time that my program had been running, if my program is running for more than 90 seconds, I will never be able to execute my 90 second countdown timer consistently. So far, I haven't come across an example where mills is used exclusively as a countdown timer.

This is the updated code that I am trying to get working. At this point I am just trying to figure out how to get the 90 second countdown timer to work.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void nintySeconds();
const int timeSelect = 2;
const int shockSense= 5;
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
unsigned long prevMills = 0;
const long ninetySec = 90000;
//int senseShock;



void setup() {
  Serial.begin(9600);

    lcd.begin(16,2);

   for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight();

  pinMode(timeSelect, INPUT);
  pinMode(shockSense, INPUT);

}

void loop() {
  
  //int senseShock = analogRead(shockSense);
  lcd.setCursor(0,0);
  lcd.print("Welcome To The ");
  lcd.setCursor(0,1);
  lcd.print("Nerf Gun Target!");
  delay(1000);

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Please Select A ");
  lcd.setCursor(0,1);
  lcd.print("Length Of Time");
  delay(500);
  //Serial.println(time90);

  buttonState = digitalRead(timeSelect);

    if (buttonState != lastButtonState)
      {
        if(buttonState == HIGH)
          {
            buttonPushCounter++;
            Serial.println(buttonPushCounter);
            
          }
        if(buttonPushCounter > 3)
        {
          buttonPushCounter = 0;
          Serial.println(buttonPushCounter);
        }
        //delay(50);
      }
      lastButtonState = buttonState;
     // Serial.println("buttonState");
     // Serial.println(buttonState);

  
  
  switch(buttonPushCounter)
    {
      case 1:
        nintySeconds();
        break;
       case 0:
        Serial.println("NOPE");
    }

}

void nintySeconds()
  {
    int beginTime;
    int countDownTime;
    int points = 0;
    int shockVal = HIGH;
    unsigned long timer = millis();
    //int senseShock;
    //senseShock = analogRead(shockSense);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Your Time Begins in");
    lcd.setCursor(0,1);
    lcd.print("5 seconds");
    
    for(beginTime = 5; beginTime >=0; beginTime--)
      {
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print(beginTime);
        lcd.print(" Seconds");
        delay(1000);
        //buttonPushCounter = 0;
        Serial.println(timer);
        Serial.println(prevMills);
      }
      if(timer - prevMills <= ninetySec)
        {
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print(countDownTime);
        lcd.print(" Seconds");
        //delay(1000);
        shockVal = digitalRead(shockSense);
        //delay(1000);
        prevMills = timer;
        //timer = prevMills;
        Serial.println("shockSense");
        Serial.println(shockSense);
        Serial.println(shockVal);  
      }
        
    
buttonPushCounter = 0;
  }