حساب نهاية التجربة المجانية وتاريخ التذكير
يسهل بدء تجربة مجانية، ولكن قد يمر موعد انتهائها من دون انتباه. تحوّل هذه الحاسبة تاريخ البدء، والمدة بالأيام، والمهلة المطلوبة قبل النهاية إلى تاريخين واضحين: يوم انتهاء التجربة ويوم إرسال التذكير. وهي تعتمد تواريخ التقويم لا الساعات المحلية، ولذلك تكون النتيجة ثابتة وملائمة للتخطيط الشخصي، ومراجعات المشتريات، ومتابعة الاشتراكات، وإجراءات نجاح العملاء.
شغّل الأداة مجانًا
أدخلوا البيانات الثلاثة التي تحدد الجدول
ابدؤوا بتاريخ انطلاق التجربة المجانية بصيغة YYYY-MM-DD الواضحة التي لا تحتمل اختلاف التفسير. ثم أدخلوا مدة التجربة عدداً صحيحاً موجباً من الأيام، وحددوا عدد الأيام الكاملة التي تريدون إرسال التذكير قبل النهاية بها. تجعل المهلة صفر التذكير في يوم الانتهاء نفسه، أما المهلة 3 فتجعله قبل النهاية بثلاثة أيام تقويمية. يُحسب الانتهاء بإضافة المدة إلى تاريخ البدء؛ فالتجربة التي تبدأ في 1 يوليو وتستمر أربعة عشر يوماً تنتهي في 15 يوليو. تقيس هذه القاعدة الزمن المنقضي بين التاريخين من دون الاعتماد على ساعة أو منطقة زمنية أو توقيت صيفي. وإذا تجاوزت مهلة التذكير مدة التجربة، وقع التذكير قبل البدء، وهو ناتج صحيح عندما يلزم إجراء المراجعة مسبقاً. استخدموا تاريخاً صحيحاً وفق التقويم الغريغوري وقيماً صحيحة للأيام لضمان جدول دقيق يمكن إعادة إنتاجه.
افهموا كيفية معالجة حدود التقويم
يمر الحساب عبر الشهور الفعلية في التقويم الغريغوري ولا يفترض تساوي أطوالها. لذلك يعالج الانتقال من يناير إلى فبراير، وتبدل السنة، والشهور ذات الثلاثين يوماً، ويوم 29 فبراير معالجة صحيحة. تكون السنة القابلة للقسمة على أربعة كبيسة عادة، باستثناء السنوات المئوية التي لا تكون كبيسة إلا إذا قبلت القسمة على أربعمائة أيضاً. وتهم هذه القاعدة التجارب التي تعبر فبراير وفترات التذكير الطويلة. لا تستخدم العملية التاريخ الحالي، أو خدمة شبكية، أو قيمة عشوائية، أو منطقة زمنية محلية، أو كائن Date في JavaScript. لذلك تعطي المدخلات نفسها النتيجة ذاتها في API وفي المتصفح. وتظهر التواريخ بصيغة YYYY-MM-DD التي يسهل ترتيبها وتمريرها إلى التقويمات والجداول وقواعد البيانات وعمليات الأتمتة بلا التباس إقليمي. ولا يضيف الحساب منتصف ليل أو إزاحة زمنية أو ساعة انتهاء لم تقدمها البيانات.
استخدموا النتيجة في مسار تذكير موثوق
احفظوا تاريخ الانتهاء في سجل الاشتراك، ثم اجعلوا تاريخ التذكير مشغلاً للإجراء المطلوب قبل النهاية. قد يكون الإجراء تقييم المنتج، أو تصدير البيانات، أو طلب اعتماد الميزانية، أو إلغاء تجديد غير مرغوب فيه، أو توجيه أسئلة أخيرة إلى المزود. عند الأتمتة، خزّنوا التاريخين اللذين تعيدهما API بدلاً من إعادة حسابهما بصورة مستقلة في عدة أنظمة؛ فالمصدر الموحد يمنع فرق اليوم الواحد بين CRM ومتابعة الفوترة والتقويم. تبلغ كلفة كل طلب API مقدار $0.002، ويمكن استخدام نسخة المتصفح للحساب الفردي. تعاملوا مع الناتج بوصفه تاريخاً للتخطيط، لا تأكيداً لساعة الفوترة لدى المزود. قد يحدد المزود ساعة بعينها، أو يعد اليوم الأخير ضمن المدة، أو يطبق شروطاً خاصة بالحساب. إذا كان المال أو استمرار الوصول متعلقاً بالموعد الدقيق، فقارنوا التاريخ بالشروط المكتوبة ورسالة التأكيد، وحددوا التذكير مبكراً بما يكفي للمراجعة والموافقة.
حالات الاستخدام
تجنب تجديد غير مرغوب فيه
حددوا مراجعة قبل الانتهاء بعدة أيام كي يتوفر وقت للإلغاء أو اعتماد الشراء.
تنسيق تقييم برنامج
امنحوا الفريق تاريخاً نهائياً واضحاً وحددوا اجتماع القرار قبل انتهاء صلاحية الوصول.
متابعة مراحل تجارب العملاء
أنشئوا تواريخ متسقة للانتهاء والمتابعة في CRM من دون الاعتماد على منطقة الخادم الزمنية.
الأسئلة الشائعة
كيف يُحسب تاريخ انتهاء التجربة؟
تُضاف المدة إلى تاريخ البدء كأيام تقويمية منقضية. فالتجربة التي تبدأ في 1 يوليو ومدتها أربعة عشر يوماً تنتهي في 15 يوليو.
هل يمكن أن تكون مهلة التذكير صفراً؟
نعم. يضع الصفر التذكير في التاريخ التقويمي نفسه الذي تنتهي فيه التجربة.
ماذا يحدث إذا تجاوزت المهلة مدة التجربة؟
يقع التذكير قبل تاريخ البدء. وهذا مسموح لأن المراجعة المسبقة قد تتم قبل إتاحة الوصول.
هل تعالج الحاسبة السنوات الكبيسة؟
نعم. تطبق قواعد التقويم الغريغوري، بما فيها استثناءات السنوات المئوية ودورة الأربعمائة سنة.
ما كلفة الحساب عبر API؟
تبلغ كلفة كل طلب API مقدار $0.002. ويمكنكم أيضاً استخدام الحاسبة مباشرة في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/final3/subscription-free-trial-end-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}'const res = await fetch("https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/subscription-free-trial-end-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-07-25","trial_length_days":14,"reminder_lead_days":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/subscription-free-trial-end-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"start_date": "2026-07-25",
"trial_length_days": 14,
"reminder_lead_days": 3
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.subscription_free_trial_end_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |