Changing a variable after a certain time

I would like to have a button that when clicked changes a variable for 30 seconds and then changes it back. For example:

Variable = false;
Button clicked, variable = true;
30 secs passes and variable = false;