"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني العمل مع التواريخ بعد عام 2038 في PHP؟

كيف يمكنني العمل مع التواريخ بعد عام 2038 في PHP؟

تم النشر بتاريخ 2024-11-10
تصفح:435

How can I work with dates beyond 2038 in PHP?

العمل مع التواريخ بعد عام 2038 في PHP

المفهوم الخاطئ الشائع بأن قيود تمثيل التاريخ في PHP تمتد إلى 2038 ليس دقيقًا تمامًا. بينما تستخدم لغة PHP بالفعل المللي ثانية لتمثيل التاريخ، يصبح من الضروري فهم الآثار المترتبة عند التعامل مع التواريخ بعد عام 2038 بكثير.

ضع في الاعتبار الموقف الذي تحتاج فيه إلى تخزين وحساب التواريخ لآلاف السنين في المستقبل مع تجاهل محدد مكونات الوقت مثل الساعات والدقائق والثواني والميلي ثانية. من خلال تجاهل هذه المعلومات، يمكنك توسيع سعة تمثيل التاريخ لديك.

بدلاً من الاعتماد على وظيفة التاريخ في php، يمكنك الاستفادة من فئة DateTime في PHP. تتعامل هذه الفئة داخليًا مع مكونات الوقت بشكل مستقل، وتتحايل بشكل فعال على قيود 2038 (ما لم تستخدم بشكل صريح طريقة ::getTimestamp).

باستخدام فئة DateTime، يمكنك تخزين السنة والشهر واليوم، مما يسمح لك بذلك لحساب التواريخ في المستقبل البعيد. حاليًا، لا توجد مكتبات محددة تقدم دعمًا مخصصًا لتمثيل التاريخ الممتد هذا. ومع ذلك، يمكنك تنفيذ حلول مخصصة لتحقيق الوظيفة المطلوبة.

لإنشاء كائن DateTime، يمكنك استخدام بناء الجملة التالي:

$date = new DateTime('2038-12-31 23:59:59');

لزيادة التاريخ بعدد محدد من السنوات، يمكنك ضبط مكون السنة مباشرة:

$date->add(new DateInterval('P1000Y'));

سيؤدي هذا إلى زيادة التاريخ بمقدار 1000 عام، مع الحفاظ على التاريخ الأصلي دون فقدان أي معلومات بسبب 2038 القيد.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3