If you've ever poured hydrogen peroxide solution onto a cut and didn't experience the expected fizz, it's likely your bottle of hydrogen peroxide has become a bottle of plain water. The 3% hydrogen peroxide solution you can buy for use as a disinfectant typically has a shelf life of at least a year if the bottle is unopened, but only lasts 30-45 days once the seal has been broken. As soon as you expose the peroxide solution to air, it starts to react to form water. Also, if you contaminate the bottle (e.g., by dipping a swab or finger into the bottle), you can expect the effectiveness of the remaining liquid to be compromised.
So, if you have a bottle of hydrogen peroxide that has been sitting in your medicine cabinet for a few years, it would be a good idea to replace it. If you've opened the bottle at any point, its activity is long-gone. Good to know, right?