Hours minutes seconds to seconds
Enter hours, minutes and seconds and get the single total in seconds that timers and spreadsheets store: 90 minutes alone is 5400 seconds, and 2 hours is 7200. Minutes above 59 are added as they are, not folded into hours. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Hours
- 1
- Minutes
- 30
- Seconds
- 45
- Total seconds
- 5,445
A hours-minutes-seconds to seconds converter answers a daily arithmetic question: given a clock-style duration such as one hour thirty minutes forty-five seconds, what is the single total in seconds that timers, APIs, and spreadsheets actually store? Zero is allowed for any component; omitted fields default to zero so you can send only minutes or only hours when that is all you have.
What hours, minutes, and seconds mean as a duration total
A clock duration is a length of time expressed with the familiar ladder of hours, minutes, and seconds—not a calendar date and not a wall-clock timestamp. Systems almost always store elapsed time as one non-negative second count because that unit is easy to add, subtract, and serialize across languages. Humans, however, still think in mixed units: a workout might be written as zero hours forty-five minutes zero seconds, a film runtime as one hour fifty-seven minutes twelve seconds, and a support SLA window as two hours zero minutes zero seconds.
Converting that mixed form into total seconds is pure scaling: each hour contributes three thousand six hundred seconds, each minute contributes sixty seconds, and the seconds field contributes one-to-one. This capability deliberately does not wrap minutes or seconds at fifty-nine. If you pass ninety minutes, the total is five thousand four hundred seconds, not an automatic rewrite into one hour thirty minutes.
That choice matches the search intent “hours minutes seconds to seconds”: people want the sum, not a normalized clock face. Fractional values are allowed so half an hour or two and a half seconds stay expressible without forcing clients to pre-round. Negative values are outside product intent: a stopwatch that reports negative minutes is broken input, not a phrase to absolute-value and print.
Practical tips, limits, and how this differs from related tools
Prefer numeric fields when you control the client; use string numbers only when a form or query string forces text. Keep each component inside the published maximum so multiplications never become non-finite. When teaching or testing, keep a small known set: one hour thirty minutes forty-five seconds equals five thousand four hundred forty-five; ninety minutes alone equals five thousand four hundred; two pure hours equals seven thousand two hundred; all zeros equals zero; and one deliberate negative failure.
Round-trip checks pair well with a humanize-duration tool: convert h:m:s to total seconds here, then format that total back into a readable phrase elsewhere, and confirm the ladder still matches your intent. This landing targets people searching for hours minutes seconds to seconds, clock duration to total seconds, or an hms to seconds calculator online. It is not a timezone converter, not an ISO timestamp parser, not a time-of-day arithmetic engine that adds two clock faces, and not a unit converter that picks arbitrary from/to labels for weeks or years.
Prefer this capability when you already have three duration components and only need the second total; if you start from a raw second count and need a human phrase, use a humanize-duration capability instead. Document the no-wrap rule in client comments so product copy writers know that ninety minutes is five thousand four hundred seconds, not a forced one hour thirty rewrite.
What you can do with it
Media and stopwatch totals for APIs
Video tools and interval timers convert author-entered h:m:s runtimes into the integer second lengths stored in databases and player APIs.
Classroom duration arithmetic
Students enter hours, minutes, and seconds and check the total second count against a deterministic formula before handing in worksheets.
FAQ
How do I convert hours, minutes, and seconds to total seconds?
Send non-negative hours, minutes, and seconds (any may be omitted and defaults to 0).
Can minutes or seconds be greater than 59?
Yes. Values above 59 are allowed and simply add more seconds. There is no clock-face wrap; ninety minutes becomes 5400 total seconds.
What happens with a negative hours, minutes, or seconds value?
Clock duration components must be non-negative; negatives are not absolute-valued.
Is this the same as humanizing a duration?
No. This tool goes from h:m:s components to a total second count. Humanize-duration tools go the other way: from seconds to a readable phrase.
Is the hours minutes seconds to seconds converter free?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/date/hms-to-seconds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hours":1,"h":0}'const res = await fetch("https://api.kit.forhosting.com/date/hms-to-seconds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hours": 1,
"h": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/hms-to-seconds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hours": 1,
"h": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/hms-to-seconds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hours":1,"h":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hours":1,"h":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/hms-to-seconds", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"hours": 1,
"h": 0
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.hms_to_seconds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Enter non-negative hours, minutes, and seconds and this tool multiplies hours by three thousand six hundred, minutes by sixty, adds the remaining seconds, and returns a deterministic total_seconds value with a short formula and step list. Negative components are rejected with invalid_input rather than absolute-valued, because a duration total that goes backward is a data error.
How to call the API and what the response contains
Each field is optional, non-negative, and finite; missing or empty fields default to zero. POST a JSON body with any combination of hours, minutes, and seconds. Aliases are accepted for ergonomics: h, hr, or hrs for hours; m, min, or mins for minutes; s, sec, or secs for seconds. String numbers that match a strict finite numeric pattern are coerced the same way as JSON numbers. Absolute component values must stay within the published maximum of one trillion so intermediate products remain finite on the Worker and in the browser. On success the response echoes hours, minutes, and seconds as the coerced numbers, total_seconds as the sum hours times three thousand six hundred plus minutes times sixty plus seconds (rounded to twelve decimal places for stable tests), formula as the fixed identity string, message as a one-line summary, and steps as an ordered array showing each contribution. Failed validation—non-finite values, negatives, or components above the maximum—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item. Prefer asserting total_seconds and the echoed components in automated tests rather than re-deriving the product by hand in every client.
Practical tips, limits, and how this differs from related tools
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send negative minutes.
Integration use cases
Unit-test fixtures for countdown UIs
Engineering teams pin total_seconds for mixed hour-minute-second inputs so client and server countdown math never disagree.