How this one works
JWT times are NumericDate values: whole seconds since 1 January 1970 UTC. This page reads iat, nbf and exp from the payload, shows each in your local time and in UTC, and re-evaluates every second.
The verdict follows the order a server checks in: a token before its nbf is not yet valid, one at or after its exp is expired, and one with no exp never expires on its own. A time written in milliseconds or as a string is flagged under Checks.
Questions
Why does my server say expired when this says valid?
Usually clock skew. Servers often allow a small leeway, but if the server clock runs ahead of yours a token can be rejected slightly early. Your browser's clock is what this page uses.
The exp looks like a huge number: is it in milliseconds?
It should be seconds. If a date shows up tens of thousands of years in the future, the issuer wrote milliseconds, which most libraries will treat as a token that never expires. The checks flag it.
Can I extend a token's expiry?
Not without re-signing it. Changing exp changes the payload, which breaks the signature. Ask the issuer for a fresh token, or use the JWT Generator to make a test one with your own key.