The first thing to establish is whether you need to use interrupts at all.
Please post your code here or attach it if it is too big.
If you use an interrupt with a trigger of CHANGE then you can test the pin state in the ISR. If it is HIGH save the value of millis() or micros() as the start time. If it is LOW save the value of millis() or micros() as the end time. Now you can calculate the length of time it was HIGH