Paste a PostgreSQL INTERVAL in any accepted form — verbose, ISO 8601 duration (P1Y2M3DT4H5M6S), postgres shorthand (@ 1 year 2 mons), HH:MM:SS.uuu, or a bare number of seconds — and get a component breakdown, human summary, total-seconds (using the pg-standard 30-day month / 365.25-day year), and re-emitted equivalents. 100% client-side.
PostgreSQL stores intervals as three separate fields — months, days, and microseconds — because a month and a day don't have a fixed number of seconds (DST, leap seconds, month length). When PostgreSQL does need a total-seconds figure — for EXTRACT(epoch FROM interval) or comparisons — it uses 30-day months and 365.25-day years. That's the convention this tool uses too. Fields with different signs (e.g. -2 mons +5 days) are legal and preserved separately.
Accepted forms: verbose (1 year 2 mons), ISO 8601 duration (P1Y2M3DT4H5M6S), postgres-shorthand SQL-92 (@ 1 hour 30 mins ago), plain [-]HH:MM:SS[.fff], or a bare integer read as seconds. Unit aliases: y/yr/yrs/year/years, mo/mon/mons/month/months, w/wk/week/weeks, d/day/days, h/hr/hour/hours, m/min/mins/minute/minutes, s/sec/secs/second/seconds, ms/millisecond/milliseconds, us/μs/microsecond/microseconds.