Problem with "millis"

Try this...

//8 second led blink
//   and 2 second buzzer when led goes on
//1 oct 2017
//forum thread 503188

byte ledPin = 2;
int ledInterval = 2000; //should be 8000, 2000 for quick test
bool ledState = 0;
unsigned long ledPreviousMillis = 0;

byte buzzerPin = 3;
int buzzerInterval = 500; //should be 2000, 500 for quick test
unsigned long buzzerPreviousMillis = 0;

unsigned long currentMillis;

void setup()
{
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, ledState);
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(buzzerPin, LOW);

}//setup

void loop()
{
  currentMillis = millis();
  if (currentMillis - ledPreviousMillis >= ledInterval)
  {
    ledState = !ledState;
    digitalWrite(ledPin, ledState);
    ledPreviousMillis = currentMillis;

    if (ledState == HIGH) //turn buzzer on if led just came on
    {
      digitalWrite(buzzerPin, HIGH);
      buzzerPreviousMillis = currentMillis; //buzzer went on at..
    }
  }

  if (ledState == HIGH) //see if it's time to turn buzzer off
  {
    if (currentMillis - buzzerPreviousMillis >= buzzerInterval)
    {
      digitalWrite(buzzerPin, LOW); //buzzer only on for first part of led on
    }
  }

}//loop