Millis() Problem!

I've find that the problem is that my currentTime and the startLampTime are the same.

You don't have either of those variables, so the statement does not make sense.

The problem with the code you posted is that every pass through loop()

(1) you need to input a '0' on the serial monitor, then
(2) LampTime is defined, then
(3) LampEnd is defined (with LampEnd = LampTime + 3000UL), then
(3) nothing else will happen until the NEXT TIME you input a '0', and so forth.

You will never get to the point that millis() > LampEnd, so the entire logic is wrong.