تقريب التاريخ والوقت إلى فترة UTC الأدنى
قرّبوا تاريخًا ووقتًا بصيغة ISO مع منطقة زمنية صريحة إلى بداية حاوية متكررة بالدقائق أو الثواني.
شغّل الأداة مجانًا
يحوّل الحساب أولًا القيمة Z أو الإزاحة الرقمية المقدمة إلى UTC، ثم ينزل إلى مضاعف الفترة المطلوبة المقاسة منذ حقبة Unix. ولا يستخدم إلا التاريخ والوقت والفترة والوحدة التي تقدمونها. لذلك تصلح النتيجة لتجميع الأحداث بصورة ثابتة، وإنشاء مفاتيح التخزين المؤقت، وتحديد نوافذ التقارير، وإعداد بيانات الاختبار، من دون الرجوع إلى ساعة أو إعدادات محلية أو خدمة شبكية أو منطقة الجهاز الزمنية.
اختاروا لحظة وفترة صريحتين
قدموا تاريخًا ووقتًا كاملين بصيغة ISO-8601، يشملان تاريخ التقويم والساعات والدقائق والثواني، ومعهما Z أو إزاحة رقمية عن UTC. وجود الإزاحة ضروري لأن قراءة الساعة المحلية وحدها لا تحدد لحظة فريدة. فعلى سبيل المثال، تمثل 09:30 في نيويورك و09:30 في لندن نقطتين مختلفتين على الخط الزمني. بعد ذلك، قدموا فترة صحيحة موجبة واختاروا الدقيقة أو الثانية وحدةً لها. تنشئ فترة مقدارها 15 دقيقة حاويات عند حدود UTC يمكن توقعها، في حين تفيد فترة 20 ثانية في تدفقات الأحداث الأكثر كثافة. يمكن أن تتراوح قيم الدقائق من 1 إلى 1440، وقيم الثواني من 1 إلى 86400، وبذلك تظل كل مطالبة محدودة بيوم واحد كحد أقصى. تُقبل كسور الثانية ضمن التاريخ والوقت الصريحين، لكن التقريب يعمل بدقة الثواني الصحيحة، ولذلك يُحذف أي كسر. تكرر الاستجابة إعدادات الإدخال، وتعرض اللحظة بعد توحيدها إلى UTC، وتعيد التاريخ والوقت المقربين مع طابع Unix الزمني الصحيح، كي تستخدموا التمثيل الأنسب للمعالجة اللاحقة.
افهموا قاعدة التقريب إلى أسفل بتوقيت UTC
تحوّل العملية التاريخ والوقت المقدمين إلى عدد صحيح من الثواني نسبةً إلى 1970-01-01T00:00:00Z. ثم تحوّل الفترة المختارة إلى ثوانٍ، وتطبق القسمة الأرضية الرياضية، وتضرب الناتج من جديد في حجم الفترة. وهذا تقريب حقيقي إلى أسفل، وليس إلى أقرب حد: فعند تقريب 14:37:52Z إلى فترة 15 دقيقة تصبح النتيجة 14:30:00Z، ولا تصبح 14:45:00Z. ترتكز الحدود إلى حقبة Unix، مما يزيل الغموض في الفترات التي لا تقسم الساعة بالتساوي. فالفترة ذات السبع دقائق، مثلًا، تتبع مضاعفات متعاقبة لسبع دقائق على خط UTC الزمني العالمي، بدلًا من البدء مجددًا وفق قاعدة محلية غير معلنة. وتكتسب الدالة الأرضية الرياضية أهمية أيضًا قبل 1970، لأنها تتجه إلى الحد الأسبق بدل البتر نحو الصفر. تُحل الإزاحات الزمنية الرقمية قبل اختيار الحاوية، ولذلك تنتج التمثيلات المتكافئة للحظة نفسها نتيجة واحدة. يتحقق التنفيذ مباشرة من تواريخ التقويم الغريغوري وحقول الساعة، ويجري تحويل التاريخ بحسابات صحيحة؛ ولا يستدعي Date ولا يرث المنطقة الزمنية للنظام.
استخدموا حاويات ثابتة في الأنظمة المؤتمتة
يمثل التاريخ والوقت بعد التقريب مفتاح حاوية موجزًا وسهل التفسير. تستطيع مسارات التحليل جمع السجلات الواردة في نوافذ متطابقة قبل التجميع. كما تستطيع الذاكرة المؤقتة اشتقاق مجموعات انتهاء الصلاحية من دون أن تؤدي أجزاء الثانية أو إعدادات المنطقة الزمنية لدى العميل إلى تفتيت مفاتيح متكافئة. ويمكن لأنظمة المراقبة توحيد الملاحظات وفق وتيرة ثابتة، ولمجموعات الاختبار التحقق من حدود دقيقة من دون تجميد ساعة النظام. خزّنوا floored_datetime عندما يحتاج الأشخاص أو السجلات إلى قيمة UTC مقروءة، أو استخدموا floored_epoch_seconds للمقارنات الرقمية وفهارس قواعد البيانات. بما أن النتيجة تعتمد فقط على حقول الإدخال الثلاثة، فإن إعادة المطالبة تنتج الكائن نفسه، ولا تغير معالجة السجلات بترتيب مختلف الإجابات السابقة. يبلغ سعر API مقدار $0.002 لكل عنصر، بينما يستطيع مشغل المتصفح تنفيذ الحساب النقي نفسه محليًا. لا تستنتج هذه الإمكانية منطقة زمنية، ولا تقرأ الوقت الحالي، ولا تنشئ حاويات شهرية تقويمية، ولا تقرّب إلى أعلى. إذا كان حد العمل يعتمد على منطقة زمنية مسماة تتغير بالتوقيت الصيفي، فاحسموا هذه القاعدة مسبقًا وقدموا إزاحة ISO الصريحة الناتجة.
حالات الاستخدام
تجميع الأحداث ضمن نوافذ التقارير
حوّلوا طوابع ISO الزمنية ذات الإزاحات المختلفة إلى بدايات حاويات UTC متسقة قبل عد السجلات أو جمعها.
إنشاء مفاتيح تخزين مؤقت حتمية
أزيلوا اختلافات الوقت الأصغر من الفترة كي تشترك المطالبات الواقعة في النافذة نفسها في مفتاح ثابت واحد.
إعداد بيانات اختبار دقيقة
تحققوا من حدود الدقائق أو الثواني من دون استخدام ساعة الجهاز أو إعداداته المحلية أو قاعدة بيانات مناطقه الزمنية.
الأسئلة الشائعة
ما تكلفة المطالبة الواحدة؟
يبلغ سعر API مقدار $0.002 لكل عنصر. وينفذ مشغل المتصفح الحساب الحتمي نفسه محليًا.
لماذا يجب أن يتضمن التاريخ Z أو إزاحة؟
لا تحدد قراءة الساعة بلا منطقة زمنية لحظة فريدة. وتجعل الإزاحة الصريحة التحويل إلى UTC حتميًا.
هل يجري التقريب إلى أقرب فترة؟
لا. يجري التقريب دائمًا إلى الحد الأسبق، بما في ذلك التواريخ السابقة لحقبة Unix.
ماذا يحدث لكسور الثانية؟
تُقبل في الإدخال، لكن الإمكانية تعمل بدقة الثواني الصحيحة، ولذلك لا تحتوي قيم UTC المعادة على كسور.
إلى أي مرجع ترتكز حدود الفترات؟
إنها مضاعفات دقيقة للفترة بالثواني منذ حقبة Unix، أي 1970-01-01T00:00:00Z.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/floor-to-interval \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2026-07-25T14:37:52Z","interval":15,"unit":"minute"}'const res = await fetch("https://api.kit.forhosting.com/date/floor-to-interval", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2026-07-25T14:37:52Z",
"interval": 15,
"unit": "minute"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/floor-to-interval",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2026-07-25T14:37:52Z",
"interval": 15,
"unit": "minute"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/floor-to-interval", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2026-07-25T14:37:52Z","interval":15,"unit":"minute"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2026-07-25T14:37:52Z","interval":15,"unit":"minute"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/floor-to-interval", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"datetime": "2026-07-25T14:37:52Z",
"interval": 15,
"unit": "minute"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.floor_to_interval",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |