Minutes to hours converter
Divide minutes by 60 and see the answer two ways: 90 minutes is 1.5 decimal hours, or 1 hour and 30 minutes. Use the decimal for payroll and the split for a clock-style log. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Minutes
- 90
- Decimal hours
- 1.5
- Hours
- 1
- Remaining minutes
- 30
- Minutes per hour
- 60
This minutes-to-hours converter takes one finite non-negative minute count and returns two representations of the same duration: decimal hours, and whole hours plus leftover minutes. Ninety minutes is one point five hours, which is also one hour and thirty minutes. One hundred twenty-five minutes is two point zero eight three hours, which is two hours and five minutes. People open this page when a timesheet, parking stay, workout log, or homework problem is stored in minutes and they need a payroll-style decimal hour or a clock-style split. Zero minutes is valid and yields zero hours. A negative value, Infinity, or a non-numeric token is rejected with invalid input and is not billed. There is no network call, no system clock, and no randomness — only divide by sixty.
How minutes become decimal hours and a clock-style split
A civil hour on this page is a duration of sixty minutes. That is the SI and clock definition used by payroll, parking meters, kitchen timers, and school arithmetic: one hour equals sixty minutes, which is also three thousand six hundred seconds. The conversion this landing answers is therefore a single exact division: decimal hours equals minutes divided by sixty.
Ninety minutes is one point five hours. Sixty minutes is one hour. Thirty minutes is one half of an hour.
One hundred twenty minutes is two hours. Forty-five minutes is zero point seven five hours. Fifteen minutes is one quarter of an hour.
Zero minutes is zero hours. Alongside that decimal, the same call also returns a clock-style split: whole hours as the integer quotient of minutes divided by sixty, and remaining minutes as the leftover after those whole hours. Ninety minutes is one hour and thirty minutes.
One hundred twenty-five minutes is two hours and five minutes. Forty-five minutes is zero hours and forty-five minutes. The result is two representations of one duration — not a calendar date, not a count of workdays, and not a conversion that assumes an eight-hour paid day.
The algorithm never consults the system clock, never calls a network service, and never uses randomness, so the same minute count always produces the same decimal hours, whole hours, remaining minutes, pretty string, and formula.
Where a minutes-to-hours product earns its keep
People reach for a minutes-to-hours converter whenever a system stores time as minutes and a human or another system must consume hours. Payroll and time-tracking exports often keep billed effort as a minute total from a badge reader and need a decimal-hour column for a payroll engine that only accepts hours. Parking, clinic, and studio software sometimes records the stay in minutes while the invoice line is labelled in hours.
Kitchen and lab timers are set in minutes even when a recipe or protocol later reports hours, so ninety minutes becomes one point five hours on the label. Teachers assign the conversion so students practice dividing by sixty instead of guessing that ninety minutes is one hour ninety minutes, or worse, treating ninety as nine point zero hours by dropping a zero. Fitness and interval logs store session length in minutes and need both a decimal hour for a weekly total and a clock-style split for a training diary.
Because the tool rejects a negative duration and non-finite tokens, it also doubles as a validator for intake forms that must not accept minus two minutes. Pair this page with the hours-to-minutes converter if you have the inverse problem, with the hours-and-minutes split if you already hold a decimal hour and only need the remainder, or with a generic time-unit converter if you also need seconds, days, or weeks in the same call.
What you can do with it
Timesheets and payroll decimals
Turn 90 or 125 logged minutes into 1.5 or 2.083333333333 hours for a payroll engine that stores billed effort as a decimal hour, and keep the 1h 30m or 2h 05m split for the human timesheet.
Parking, clinic, and studio stays
Convert a stay recorded in minutes into invoice hours, so a 45-minute appointment is 0.75 hours and 0h 45m, not a guessed 1 hour line.
Workouts, kitchens, and classroom checks
Express a 30-minute interval or a 180-minute bake as a decimal hour and a clock split, and let students verify that Infinity and a negative minute count are rejected.
FAQ
What is the difference between decimal hours and hours with remaining minutes?
Decimal hours is one number (90 minutes → 1.5). Hours with remaining minutes is the clock split (1 hour and 30 minutes). This converter returns both from the same minute total.
What happens if I enter a negative number, Infinity, or text?
A duration in minutes must be finite and non-negative.
Can I convert a fraction of a minute?
Yes. 90.5 minutes returns 1.508333333333 decimal hours and 1 hour plus 30.5 remaining minutes. Whole minutes are not required.
How do I turn minutes into decimal hours for payroll?
Divide the minute total by 60: 45 minutes is 0.75 hours and 125 minutes is about 2.083 hours. That decimal column is what payroll and time-tracking systems usually expect.
Does it assume an eight-hour working day?
No. An hour here is always sixty minutes of elapsed time. The result is not a calendar date or a count of workdays, so a long total simply shows more hours.
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/conv/minutes-to-hours-converter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":90}'const res = await fetch("https://api.kit.forhosting.com/conv/minutes-to-hours-converter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minutes": 90
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/minutes-to-hours-converter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minutes": 90
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/minutes-to-hours-converter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minutes":90}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minutes":90}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/minutes-to-hours-converter", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"minutes": 90
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.minutes_to_hours_converter",
"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.
Limits
max_abs_value | 1000000000000 |
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
Successful API requests cost $0.002.
Input contract, finite numbers, and errors
The value is the duration in minutes to convert, and it must be a finite non-negative number. Fractional minutes are allowed and expected. Negative minutes are rejected: a duration cannot run backwards on this landing, which is the same rule a parking stay or a workout log would apply. Ninety minutes maps to one point five decimal hours and to one hour thirty minutes; forty-five minutes maps to zero point seven five hours and to zero hours forty-five minutes. Invalid input is not billed. The request body carries one required number: minutes. Aliases min and value are accepted so a form, a query string, or a spreadsheet column can reuse the same contract without renaming the input. The value may arrive as a JSON number or as a decimal numeric string, including an optional leading plus and scientific notation; embedded spaces, hex prefixes, and non-numeric tokens fail with a message that names the field. Missing minutes, an empty string after trim, Infinity, and NaN fail with invalid_input and are not billed. Absolute values beyond the published magnitude limit are rejected so the quotient stays finite in IEEE double precision. On success the body echoes minutes, returns decimal_hours as the quotient minutes divided by sixty, hours as the whole-hour count, remaining_minutes as the leftover, minutes_per_hour as sixty, a pretty string such as 1h 30m, and a short formula you can print next to the answer. Successful API calls use the published $0.002 base price.
Where a minutes-to-hours product earns its keep
That keeps latency at a handful of arithmetic operations and keeps the cost model honest at $0.002 per successful API request, while failed validation never consumes prepaid balance.
Technical questions
How do I convert minutes to hours?
Send minutes as a finite non-negative number. The API divides by 60 and returns decimal hours plus whole hours and remaining minutes. 90 minutes is 1.5 hours and 1h 30m.
What does the minutes to hours converter cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.