Time looping for x minutes.

Hey. I am setting up a device where i need to blink leds for number of minutes if button is pressed. And other blinks aswell. What is the best option to run diffrent (if) commands for number of minutes?

const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 10; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

// the loop function runs over and over again forever
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:

digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level)
delay(60); // off/on
digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW
delay(60); // off/on
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

Hello Andy,
Welcome to the Arduino fora.
Before you do anything else please take a moment to read General guidance
And
How to use this forum
Especially item #7 on posting code.

Then please study blink without delay, which is in the examples in the IDE under digital and apply the lessons learnt to your code. Delay might be working OK for you now in simple code, but the more complex your code gets the more delay will cause you problems.
Also study these, which will help with what you are trying to do.
Using millis for timing
Demonstration for several things at the same time
In answer to the question "my code is not very responsive and I don't know why", which you will be asking in a month or 3; "It's because of all the delays".