経過時間
2024年3月10日9時30分から3月12日14時45分30秒までの経過時間は、2日5時間15分30秒です。日付つきの2つのタイムスタンプを入れると、マイナスにならない経過時間が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始
- 2024-03-10T09:30:00Z
- End
- 2024-03-12T14:45:30Z
- 開始
- 2024-03-10T09:30:00.000Z
- End
- 2024-03-12T14:45:30.000Z
- 日数
- 2
- 時間
- 5
2つのタイムスタンプのあいだにどれだけ時間が経ったでしょうか。経過時間計算機は、暦日の日数だけでも文字盤の時刻差だけでもなく、完全な所要時間でその日常の問いに答えます。開始タイムスタンプと終了タイムスタンプ — 2024-03-10T09:30:00Z のような ISO-8601 の時点、UTC の正子として扱う日付のみ、または Unix 秒 — を入れると、経過した日・時・分・秒・ミリ秒が返ります。終了が開始より前なら、勤務表やログが黙って誤読する負の所要時間を返すのではなく、要求は拒否されます。ネットワーク呼び出しもシステム時計も乱数もなく、あるのは民事暦から UTC ミリ秒への変換と、後ろへ進むことを拒む減算だけです。
2つのタイムスタンプが日・時・分・秒になるしくみ
タイムスタンプは民事の時間軸上の一瞬を指し、12時間制や24時間制の文字盤上の位置でも、すでに測った所要時間でもありません。2024-03-10T09:30:00Z はひとつの UTC 時点であり、2024-03-12T14:45:30Z はその後の時点です。
経過時間の規則は、先発グレゴリオ暦の算術 — 閏年、月の日数、時差を含む — で各時点を Unix 元期からのミリ秒へ直し、終了から開始を引きます。負でない余りは整数除算を重ねて分けます。8,640万ミリ秒が1日、360万ミリ秒が1時間、6万ミリ秒が1分、1,000ミリ秒が1秒です。
残りがミリ秒の端数です。同じタイムスタンプは丸一日ではなく経過ゼロになります。ふたつの読みが同じ一瞬を指すからです。
2024-01-01 のような日付のみは UTC の正子として扱い、1日から8日まではちょうど7日です。数値の Unix 秒は1,000倍します。絶対値が少なくとも1兆の値は、すでにミリ秒と見なします。
ログ出力やブラウザが出来事に印を付けるときの通例です。
入力契約、受け付ける形式、終了が開始より前の誤り
要求本体には必須の2欄 start と end があります。それぞれは YYYY-MM-DD 形式の ISO-8601 日付、小数秒と Z またはプラスマイナス HH:mm の時差を付けられる ISO-8601 日時、または数や数字列としての Unix タイムスタンプです。前後の空白は取り除きます。
解析した end の時点が解析した start の時点より早いときも失敗し、終了が開始に先行するというメッセージになります。この計算機は日付変更のまたぎも符号付きの負の所要時間も作りません。不正な入力は課金されません。
経過時間計算機が役に立つ場面
人が経過時間計算機に手を伸ばすのは、記録された2つの時点を、人が読んでスクリプトが保存できる長さへ変える必要があるときです。障害対応の指揮者は、開始タイムスタンプと終了タイムスタンプを SLA 窓口の日と時へ直します。製品と支援のチームは、最初のログ行から最後まで、セッションやジョブ、配備がどれだけ続いたかを測ります。
出退勤をすでに日時として持つ給与や勤務表の道具は、暦日の数え上げでも同日の文字盤またぎでもなく、所要時間が必要です。経過時間を学ぶ生徒は、10日の 09:30 から12日の 14:45:30 が2日5時間15分30秒であり、紙の上の借り誤りではないことを確かめます。
日付のない2つの時刻だけなら文字盤の所要時間の道具と、暦日の日数だけが必要なら民事日の数え上げと、秒数がすでにあり文言だけが必要なら読みやすい所要時間の整形と、このページを組み合わせてください。逆向きの区間を拒むので、終了が開始より前であってはならない受付フォームの、タイムスタンプ順の検査にもなります。実装は純粋な parse の段階 A です。
活用例
障害と SLA の窓口
障害ログの開始タイムスタンプと終了タイムスタンプを、逆向きの区間を受け付けてはならない SLA 報告用の日・時・分へ直します。
日時から求める勤務とセッションの長さ
両端が ISO 日時または Unix 秒として保存されているとき、勤務、会議、記録されたセッションが何日にまたがっても、どれだけ続いたかを求めます。
教室とログでの経過時間の検算
2024-03-10T09:30:00Z から 2024-03-12T14:45:30Z が 2 days 5 hours 15 minutes 30 seconds であること、より早い終了は拒否されることを、生徒とスクリプトが確かめられます。
よくある質問
2つのタイムスタンプの経過時間はどのように求めますか?
start と end を ISO-8601 日時(または UTC 正子の日付のみ)か Unix 秒として送ってください。
終了タイムスタンプが開始より前だとどうなりますか?
経過時間は終了が開始と同じかそれ以降であることを求めます。計算機は日付変更をまたがず、負の所要時間も返しません。
どのタイムスタンプ形式を受け付けますか?
ISO-8601 の YYYY-MM-DD、小数と Z または ±HH:mm を付けられる YYYY-MM-DDTHH:mm:ss、および Unix 秒(絶対値が少なくとも 1e12 のときはミリ秒)です。日付のない 09:30 のような時刻だけの文字列は拒否されます。
文字盤の所要時間や日付間の日数と何が違いますか?
文字盤の所要時間は円環の2時刻を引き、日付変更をまたぐことがあります。日付間の日数は暦日を数えます。このページは2つの絶対タイムスタンプのあいだの完全な所要時間を測ります。
経過時間を秒の合計で見られますか?
はい。日・時・分・秒に加えて、秒の合計も表示します。2024年3月10日9時30分から3月12日14時45分30秒までなら191730秒です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/life/elapsed-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-03-10T09:30:00Z","end":"2024-03-12T14:45:30Z"}'const res = await fetch("https://api.kit.forhosting.com/life/elapsed-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-03-10T09:30:00Z",
"end": "2024-03-12T14:45:30Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/elapsed-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-03-10T09:30:00Z",
"end": "2024-03-12T14:45:30Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/elapsed-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-03-10T09:30:00Z","end":"2024-03-12T14:45:30Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-03-10T09:30:00Z","end":"2024-03-12T14:45:30Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/elapsed-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start": "2024-03-10T09:30:00Z",
"end": "2024-03-12T14:45:30Z"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.elapsed_time",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
2つのタイムスタンプが日・時・分・秒になるしくみ
算法はシステム時計を見ず、ネットワークサービスを呼ばず、乱数も使わないので、同じタイムスタンプの組は常に同じ days、hours、minutes、seconds、total_seconds、pretty の語句、compact の文字列を返します。
入力契約、受け付ける形式、終了が開始より前の誤り
start には別名 start_time、start_timestamp、from、begin を、end には別名 end_time、end_timestamp、to、until、stop を受け付けるので、フォームやスクリプトはいまある名前のまま使えます。欠けた欄、切り詰め後の空文字、文字列でも数でもない値、2024-02-30 のようなあり得ない民事日、0から23の外の時、ISO でも数字でもない文字列は invalid_input で失敗し、問題の欄を指名します。成功時の応答は、ミリ秒精度の UTC ISO-8601 に正規化した両方のタイムスタンプ、分解した days、hours、minutes、seconds、milliseconds、正確な個数としての total_seconds と total_milliseconds、2 days 5 hours 15 minutes 30 seconds のような英語の pretty 句、2d 5h 15m 30s のような compact トークン、答えの横に印刷できる短い公式を返します。成功した API 呼び出しは公表の基本料金 $0.002 を使います。
経過時間計算機が役に立つ場面
モデルのトークンもなく、外向きの HTTP もなく、Date オブジェクトもありません。遅延はわずかな算術演算に留まり、成功した API 要求あたり $0.002 という正直な料金モデルを保ち、検証の失敗が前払い残高を消費することはありません。
技術的な質問
経過時間計算機の料金はいくらですか。
ブラウザの道具は無料です。API 要求は成功1回あたり $0.002 の前払い残高を使い、不正な入力は課金されません。