حساب نسبة الوقت المنقضي ضمن فترة ISO
أدخل البداية والنهاية واللحظة التي تريد تقييمها، وانظر كم انقضى من الفترة: الساعة 14:00 ضمن فترة من 08:00 إلى 20:00 UTC تعني 50%. لا شيء يعتمد على الساعة الحالية. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- البداية
- 2026-07-25T08:00:00Z
- End
- 2026-07-25T20:00:00Z
- المرجع
- 2026-07-25T14:00:00Z
- التقدم (%)
- 50
- المنقضي (ms)
- 21,600,000
- المدة (ms)
- 43,200,000
- العلاقة بالمرجع
- within
تحسب هذه الأداة نسبة الوقت المنقضي داخل فترة محددة صراحة من دون الرجوع إلى الساعة الحالية. أدخلوا تاريخ ووقت البداية والنهاية واللحظة المرجعية المراد تقييمها. يجب أن تتضمن كل قيمة Z أو إزاحة UTC رقمية، ولذلك تعطي اللحظات المتكافئة النتيجة نفسها بصرف النظر عن الحاسوب أو المتصفح الذي يجري الحساب. تشمل النتيجة النسبة المقربة والمقيدة، والميلي ثواني المنقضية بإشارتها، والمدة الكلية، وحالة تطبيق القيد، وموضع اللحظة المرجعية بالنسبة إلى الفترة.
حددوا فترة كاملة ولحظة مرجعية واضحة
لا يكون التقدم ذا معنى إلا عندما تكون حدود الفترة ونقطة القياس واضحتين بلا التباس. بعد توحيد الإزاحات، يجب أن تمثل end لحظة تلي start. ويمكن أن تقع reference داخل الفترة أو قبلها أو بعدها.
لذلك تفيد الحاسبة في المراجعات التاريخية، والمراحل المجدولة، والعد التنازلي، ونوافذ الصيانة، والاختبارات القابلة لإعادة الإنتاج، لأنها لا تستبدل اللحظة المرجعية بساعة الجهاز. القيمة 2026-07-25T14:00:00Z صريحة، أما الوقت المحلي الخالي من الإزاحة فيُرفض. وقد تصف صيغتان بإزاحتين مختلفتين اللحظة نفسها؛ فالقيمتان 2026-07-25T16:00:00+02:00 و2026-07-25T14:00:00Z متساويتان هنا.
تتحقق الأداة من حقول التقويم قبل التحويل، بما في ذلك عدد أيام الشهر وقواعد السنوات الكبيسة في التقويم الغريغوري، حتى لا ينتقل تاريخ مستحيل بصمت إلى يوم آخر.
افهموا حساب UTC وتقييد النسبة
يحوّل الحساب أولا كل تاريخ ووقت إلى مقياس واحد بالميلي ثانية وفق UTC. تساوي النسبة الخام الوقت المنقضي مقسوما على المدة ومضروبا في مئة. افتراضيا، تُقيد النسبة المعادة بين صفر ومئة؛ فإذا سبقت reference البداية كانت النتيجة صفرا، وإذا تلت النهاية كانت مئة.
يمكنكم تحديد نسبتين مختلفتين للحد الأدنى والأقصى عند الحاجة إلى مقياس مقيد آخر، بشرط ألا يقل الحد الأقصى عن الأدنى. وتُعد اللحظة المطابقة تماما لأي حد واقعة داخل الفترة، فتنتج بصورة طبيعية نسبة الطرف المقابل.
اختاروا الدقة واحصلوا على نتائج حتمية
يجري التقريب بعد تقييد النسبة الخام فقط، وبذلك تظل الحدود المحددة هي المرجع النهائي. لا تتصل الخوارزمية بالشبكة، ولا تستخدم العشوائية، ولا تستدعي Date، ولا تفحص المنطقة الزمنية للنظام. تفيد هذه القابلية للتوقع في مسارات البناء، ولوحات التقدم، ولقطات فترات الفوترة، واختبارات الانحدار التي قد تتغير نتائجها بسبب وقت حالي ضمني.
احفظوا reference الدقيقة مع النتيجة إذا أردتم إعادة إنتاج الحساب لاحقا. ولعرض تقدم مباشر، أنشئوا اللحظة المرجعية صراحة داخل تطبيقكم وأرسلوا قيمتها؛ فقد صُممت هذه القدرة لتظل حسابا خالصا لا قراءة خفية للساعة.
حالات الاستخدام
قياس نافذة إصدار
احسبوا نسبة تقدم ثابتة لعملية نشر أو صيانة عند نقطة تحقق مسجلة صراحة.
إعادة إنتاج قيمة لوحة متابعة
احفظوا اللحظة المرجعية مع الفترة وأعيدوا توليد النسبة التي عُرضت سابقا بدقة.
اختبار السلوك عند الحدود
تحققوا من حالات ما قبل البداية وداخل الفترة وما بعد النهاية بقيود قابلة للضبط ونتيجة متوقعة حتمية.
الأسئلة الشائعة
هل تستخدم الأداة الوقت الحالي؟
لا. يجب أن تقدموا reference صراحة، ولا يقرأ الحساب أي ساعة مطلقا.
هل إزاحات المناطق الزمنية مدعومة؟
نعم. استخدموا Z أو إزاحة رقمية مثل +02:00 أو -05:30؛ فجميع المدخلات تُوحد إلى UTC.
هل يمكن أن تتساوى البداية والنهاية؟
لا. يجب أن تكون end بعد start، لأن الفترة التي مدتها صفر لا تملك نسبة انقضاء معرفة.
ماذا يحدث إذا كانت اللحظة قبل البداية أو بعد النهاية؟
افتراضيًا تتوقف النسبة عند 0 قبل البداية وعند 100 بعد النهاية. ويحتفظ الوقت المنقضي بإشارته، فتبقى ترى مدى بُعد اللحظة عن الفترة.
كم منزلة عشرية تظهر في النسبة؟
ست منازل افتراضيًا. يمكنك اختيار ما بين صفر واثنتي عشرة منزلة، ولا يجري التقريب إلا بعد إبقاء النسبة ضمن حدودها.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/time-progress-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-07-25T08:00:00Z","end":"2026-07-25T20:00:00Z","reference":"2026-07-25T14:00:00Z"}'const res = await fetch("https://api.kit.forhosting.com/date/time-progress-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2026-07-25T08:00:00Z",
"end": "2026-07-25T20:00:00Z",
"reference": "2026-07-25T14:00:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/time-progress-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2026-07-25T08:00:00Z",
"end": "2026-07-25T20:00:00Z",
"reference": "2026-07-25T14:00:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/time-progress-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2026-07-25T08:00:00Z","end":"2026-07-25T20:00:00Z","reference":"2026-07-25T14:00:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2026-07-25T08:00:00Z","end":"2026-07-25T20:00:00Z","reference":"2026-07-25T14:00:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/time-progress-percent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"start": "2026-07-25T08:00:00Z",
"end": "2026-07-25T20:00:00Z",
"reference": "2026-07-25T14:00:00Z"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.time_progress_percent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
حددوا فترة كاملة ولحظة مرجعية واضحة
قدموا start وend وreference بصيغة تاريخ ووقت ISO 8601 كاملة، مع الثواني وZ أو إزاحة UTC رقمية صريحة.
افهموا حساب UTC وتقييد النسبة
ثم يطرح start من end لاستخراج المدة الكاملة، ويطرح start من reference لاستخراج الوقت المنقضي بإشارته. يؤثر التقييد في progress_percent وحده، بينما يحتفظ elapsed_ms بإشارته ليبين مقدار ابتعاد المرجع قبل الفترة أو بعدها. يوضح clamped ما إذا غيّر التقييد القيمة الخام، ويعيد reference_relation إحدى القيم before أو within أو after.
اختاروا الدقة واحصلوا على نتائج حتمية
يتيح precision اختيار عدد المنازل العشرية في progress_percent من صفر إلى اثنتي عشرة، والقيمة الافتراضية ست. يبقى duration_ms وelapsed_ms فرقين صحيحين بالميلي ثانية، مما يتيح لكم تدقيق النسبة أو عرض مدة منفصلة. ويعتمد تحويل التقويم الغريغوري على الحساب المجرد، لذا يعيد الطلب الصحيح نفسه JSON مطابقا سواء نُفذ في Worker على الخادم أم في متصفح الزائر.
أسئلة تقنية
ما تكلفة الاستخدام عبر API؟
تكلفة كل طلب هي $0.002. ويمكن إجراء الحساب الخالص نفسه داخل المتصفح أيضا.
ماذا يحدث إذا كانت اللحظة المرجعية خارج الفترة؟
تُقيد النسبة بالنطاق المحدد، بينما يحفظ elapsed_ms بإشارته وreference_relation موضعها الحقيقي.