إضافة ساعات إلى تاريخ ووقت
حرّك تاريخًا ووقتًا بعدد من الساعات واقرأ النتيجة بتوقيت UTC: الساعة 10:00 UTC يوم 1 مارس 2024 مضافًا إليها 5 ساعات تصبح 15:00 UTC في اليوم نفسه. وتصلح الساعات السالبة والكسرية أيضًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- التاريخ والوقت
- 2024-03-01T10:00:00Z
- الساعات
- 5
- النتيجة
- 2024-03-01T15:00:00Z
- السنة
- 2,024
- الشهر
- 3
- اليوم
- 1
تقبل هذه الأداة تاريخًا-وقتًا صريحًا بصيغة ISO-8601 —وقتًا كاملًا مع Z أو إزاحة رقمية، أو تاريخًا فقط يُعامل منتصف ليل UTC— مع إزاحة ساعات محدودة موجبة أو سالبة أو كسرية أو صفر. تحوّل الأساس إلى ثوانٍ عصر UTC بحساب تقويمي غريغوري صرف، وتضيف round(hours × 3600) ثوانٍ صحيحة، وتعيد بناء نتيجة UTC موحّدة كسنة-شهر-يوم T ساعة-دقيقة-ثانية Z. تفشل الأيام التقويمية المستحيلة والسلاسل التالفة بخطأ تحقق واضح بدل الالتفاف إلى الشهر التالي.
كيف تعمل إضافة الساعات بتوقيت UTC دون ساعة النظام
ابدأ بتاريخ-وقت أساسي صريح مكتوب بالصيغة الدولية ISO حتى يتفق كل عميل على السنة والشهر واليوم وحقول الساعة الاختيارية. عند تقديم تاريخ تقويمي فقط، عامله منتصف ليل الزمن العالمي المنسق. عند وجود وقت، اقبل ثواني كسرية اختيارية (تُقتطع إلى ثوانٍ صحيحة) وإما Z ختامية لـ UTC أو إزاحة رقمية للساعات والدقائق بعلامة زائد أو ناقص تُطرح عند التحويل إلى زمن مطلق.
تحقّق من وجود اليوم المدني وفق قواعد الكبيسة الغريغورية —التاسع والعشرون من فبراير قانوني فقط إذا كانت السنة قابلة للقسمة على أربعة، باستثناء سنوات القرن التي يجب أن تكون قابلة للقسمة على أربعمئة أيضًا— وأن الساعة والدقيقة والثانية ضمن نطاقاتها المعتادة. حوّل الثلاثي المدني إلى رقم يوم تسلسلي بخوارزمية days-from-civil لـ Howard Hinnant، واضرب في أربعة وثمانين ألفًا وستمئة ثانية، وأضف وقت اليوم المحلي، واطرح دقائق الإزاحة مضروبة في ستين للحصول على ثواني عصر UTC. أضف إزاحة الساعات المحوّلة كـ round(hours × 3600).
أعد بناء التاريخ المدني بـ civil-from-days، وافصل الساعة والدقيقة والثانية من باقي ثواني اليوم، وصِغ سلسلة أربعة-اثنين-اثنين T اثنين-اثنين-اثنين Z. المسار كله حساب صحيح حتمي بعد تحويل الساعات إلى ثوانٍ: بلا بذور عشوائية ولا جداول منطقة للمضيف ولا قواعد بيانات لتوقيت الصيف ولا شبكة، فيتفق العرض التعليمي وتركيبات الإنتاج دائمًا.
أين تظهر حاسبات إضافة الساعات إلى تاريخ-وقت في العمل
تحوّل فرق التشغيل أوقات إنشاء تذاكر الدعم إلى مواعيد أول استجابة بإضافة نوافذ ساعات تعاقدية دون اختراع مكتبة تقويم كاملة. يُنشئ مهندسو البيانات أعمدة أحداث مؤجّلة لمسارات تُطلق بعد N ساعة من طابع استيعاب مخزّن كنص ISO. يصمّم مديرو المنتج نوافذ تجريبية ومعاينات TTL للذاكرة المؤقتة ونصوص انتهاء الجلسة بنفس الأرقام التي سيرسلها الخادم الخلفي.
إن احتجت لاحقًا إلى إضافة أيام تقويمية بلا ساعة، أو جداول أيام عمل تتخطى عطلة نهاية الأسبوع، أو تفكيك عدّ تنازلي بين لحظتين، أو تحويل وحدات صرف بين الساعات والدقائق، فاعامل ذلك كنوايا بحث وصفحات هبوط منفصلة بدل إثقال صفحة إضافة الساعات إلى تاريخ-وقت هذه — فتلك المسائل تحل استعلامات مختلفة حتى إن تشابه بعض الحساب تحت السطح.
حالات الاستخدام
اتفاقيات مستوى الخدمة ومواعيد الاستجابة
أضف نوافذ استجابة تعاقدية (مثل أربع أو ثماني أو أربع وعشرين ساعة) إلى طابع ISO صريح للتذكرة واحفظ موعد UTC مستقرًا.
أعمدة التأخير في المسارات
أنشئ أوقات أحداث مؤجّلة كـ datetime ISO أساسي زائد إزاحة ساعات مضبوطة لمهام ETL والذاكرة المؤقتة وإعادة المحاولة المجدولة.
تركيبات ضمان الجودة حول منتصف الليل
ولّد طوابع زمنية متوقعة حتمية تعبر حدود اليوم والكبيسة لاختبارات الانحدار دون الاعتماد على ساعة المضيف.
الأسئلة الشائعة
ماذا تعني إضافة ساعات إلى تاريخ ووقت؟
تعني أخذ طابع ISO-8601 صريح وتحويله إلى UTC من السلسلة وحدها، والتقدّم أو التراجع بعدد محدود من الساعات، وإرجاع التاريخ-الوقت UTC بعد الإزاحة.
هل تستخدم المنطقة الزمنية المحلية لحاسوبي؟
لا. كل الحساب بتوقيت UTC مستمد من سلسلة الإدخال فقط. تُطبَّق الإزاحات الرقمية في الإدخال مرة واحدة عند التحويل إلى زمن مطلق؛ والنتيجة تُصدر دائمًا بـ Z ختامية.
هل يمكنني استخدام ساعات كسرية؟
نعم. قيم مثل 1.5 تصبح round(1.5 × 3600) = 5400 ثانية صحيحة. تُرفض القيم غير المحدودة والمقادير غير المعقولة.
ما صيغ التاريخ-الوقت المقبولة؟
تاريخ فقط YYYY-MM-DD (منتصف ليل UTC)، أو تاريخ-وقت كامل بثوانٍ وكسر اختياريين ينتهي بـ Z أو إزاحة رقمية ±HH:mm. تُرفض الأشكال المرنة بلا عرض أرقام ثابت.
بأي منطقة زمنية تظهر النتيجة؟
دائمًا بتوقيت UTC. فإذا كان للوقت الأصلي فرق عن UTC يُحوَّل قبل الحساب، والتاريخ الذي لا يحمل وقتًا يُعامل على أنه منتصف الليل بتوقيت UTC.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/add-hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-03-01T10:00:00Z","hours":5}'const res = await fetch("https://api.kit.forhosting.com/date/add-hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-03-01T10:00:00Z","hours":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-03-01T10:00:00Z","hours":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-hours", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_hours",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
إزاحة طابع زمني بعدد ثابت من الساعات مهمة يومية في واجهات API ومجدولات المهام وساعات اتفاقيات مستوى الخدمة واستيراد الجداول؛ غير أن مناطق المضيف وتوقيت الصيف يحوّلان جمعًا يبدو بسيطًا إلى مصدر لاختبارات متقلبة.
ما الذي ترسله وما الذي تستلمه
تشمل الفحوصات الكلاسيكية إضافة خمس ساعات إلى العاشرة UTC للوصول إلى الخامسة عشرة في اليوم نفسه، وإضافة أربع وعشرين ساعة لعبور يوم تقويمي، وطرح ثلاث ساعات من طابع صباحي، وتحويل إدخال بإزاحة زائد-صفر-اثنين إلى نتيجة Z خالصة بعد الحساب، ورفض أساس مثل 29 فبراير في سنة عادية. استخدم النموذج المجاني في المتصفح للتحقق السريع ثم نفس العقد من السكربتات عند الحاجة إلى مواعيد SLA بالجملة أو تركيبات انحدار. أرسل حقلين إلزاميين: datetime كنص ISO-8601 مثل ألفين وأربعة وعشرين شرطة صفر ثلاثة شرطة صفر واحد T عشرة نقطتان صفر صفر نقطتان صفر صفر Z، وhours كعدد محدود مثل خمسة أو صفر أو سالب ثلاثة أو واحد فاصلة خمسة (يُكتب 1.5). تُقبل الأسماء البديلة date وdt وtimestamp وts للنص الأساسي. الحقول الناقصة وdatetime غير النصي والسلاسل خارج شكل ISO وإزاحات الساعات غير المحدودة والأيام التقويمية المستحيلة وسنوات النتيجة خارج النطاق تفشل بـ invalid_input ولا تُحسب. عند النجاح تعيد الاستجابة datetime الأساسي بعد التشذيب وإزاحة hours المطبّقة ونص ISO UTC الناتج بعد الجمع والسنة والشهر واليوم والساعة والدقيقة والثانية الرقمية للنتيجة وepoch_seconds للنتيجة والعدد الصحيح delta_seconds المضاف وhours_added وصيغة قصيرة توثّق إعادة بناء UTC. تسعير استدعاءات API الناجحة هو الأساس المنشور $0.002 لكل عنصر؛ إخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقًا.
أين تظهر حاسبات إضافة الساعات إلى تاريخ-وقت في العمل
ولأن القدرة محرك parse صرف، فإن تسعير API هو الأساس المنشور $0.002 لكل عنصر ناجح ولا يستهلك فشل التحقق الرصيد.
أسئلة تقنية
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ الإدخال غير الصالح لا يُحسب.