سؤال

اكتشفت للتو ، عند تشغيل برنامج نصي للتقويم ، أن الطوابع الزمنية في PHP لها حد يصل إلى 2038. ماذا يعني ذلك حقًا؟لماذا هو 2038 بدلاً من 2050 أو 2039؟لماذا حد إذا كانت الطوابع الزمنية تحسب الثواني من تاريخ معين (1970)؟

هل كانت مفيدة؟

المحلول

يتم فرض الحد من خلال الأعداد الصحيحة ذات الإشارات المكونة من 4 بايت والتي تستخدمها معظم مكتبات لغة C لتمثيل هذا العدد.الرياضيات السريعة (بافتراض 365 يومًا للسنوات ، غير صحيح تمامًا): Genacodicetagpre

يشير هذا أيضًا إلى حد أدنى يبلغ 1900 تقريبًا.بدأت بعض المكتبات في تقديم عدد 64 بت من الأعداد الزمنية ، لكنها قليلة ومتباعدة في الوقت الحالي.

نصائح أخرى

القيمة القصوى لعدد صحيح 32 بت هي 2،147،483،647.إذا أضفت +1 إلى ذلك ، فستحصل على -2،147،483،647.2،147،483،647 ثانية من 01-01-1970 00:00:00 هو 19 يناير 2038. إذا أضفت ثانية أخرى ، فستحصل على تاريخ في مكان ما في عام 1902.

أظن أنه يتم تخزينه في عدد ثابت من البتات ، مما يعني حدًا لمدى الحجم الذي يمكن أن يصل إليه الطابع الزمني.يمكننا إجراء بعض العمليات الحسابية لمعرفة ذلك بالضبط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top