تمثيل التاريخ في PHP: التغلب على حدود 2038
في حين أن وظائف التاريخ الأصلية في PHP لها قطع في عام 2038، إلا أن هناك طرق بديلة للتعامل مع التواريخ خارج هذا القيد. أحد هذه الأساليب هو تخزين السنة والشهر واليوم فقط، بغض النظر عن مكونات الساعة والدقيقة والثانية والميلي ثانية.
من خلال تجاهل مكونات الوقت الإضافية هذه، يمكنك توسيع نطاق التواريخ القابلة للتمثيل بشكل ملحوظ. وذلك لأن كل مكون من هذه المكونات يشغل جزءًا من التمثيل المستند إلى المللي ثانية المستخدم داخليًا بواسطة PHP.
استخدام فئة DateTime
لهذا الغرض، يمكنك استخدم فئة DateTime. على عكس دالة التاريخ، يمثل DateTime مكونات الوقت بشكل مستقل. يستخدم مزيجًا من الطوابع الزمنية والمناطق الزمنية لنظام Unix لتخزين التاريخ وتتبعه.
$date = new DateTime(); $date->setDate(5000, 12, 31); echo $date->format('Y-m-d'); // Outputs "5000-12-31"
حساب السنة والشهر واليوم
باستخدام فئة DateTime، يمكنك إجراء العمليات الحسابية على السنة، والشهر، ومكونات اليوم بشكل فردي. على سبيل المثال، لإضافة 100 عام إلى تاريخ:
$date->add(new DateInterval(['y' => 100])); echo $date->format('Y-m-d'); // Outputs "5100-12-31"
باستخدام هذا الأسلوب، يمكنك توسيع حسابات التاريخ الخاصة بك إلى ما هو أبعد من الحدود التي يفرضها تمثيل التاريخ الافتراضي في PHP. ومع ذلك، من المهم ملاحظة أن فئة DateTime لا تزال تحتفظ بسياق المنطقة الزمنية، لذلك قد تظل العمليات التي تتضمن مناطق زمنية أو مقارنات زمنية خاضعة لقيود 2038.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3