No, not at all.
It is also very hard to describe this in a logical way.
This would be an excellent question for school. It seems simple but it puts your brain at work. You have to be able to see the logic.
If both leds are off for a few days and the button is pressed, do you want to start with the first led, or the other led regarding to the led that was last on a few days ago ?
Can you describe the initial state (when resetting or powering up the Arduino board). I would assume that both leds are off. If one led is already on, should that turn off after the timer has finished ?
A millis-timer runs typically on its own in the main level of the loop().
With every button press, start the timer, and let the timer turn the led(s) off.
You can keep the ledstate1 and ledstate2, but you can also make a variable that is 0, 1 or 2 (no leds, first led, second led).
Here is an example that shows how to start a timer and how the timer turns itself off: millis_single_delay.ino
The problem with your code is that you use a digitalWrite() to turn the led off but don't change the ledstate variable. However, that's not good enough. Can you make better code that turns on and off the led by calling digitalWrite() just once instead of hundred times per second.