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

كيفية التعامل مع المناطق الزمنية بشكل فعال في PHP وMySQL؟

تم النشر بتاريخ 2024-12-22
تصفح:794

How to Handle Time Zones Effectively in PHP and MySQL?

المناطق الزمنية في PHP و MySQL

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

تخزين أوقات التاريخ في MySQL

  • استخدام DATETIME أو TIMESTAMP: يوفر DATETIME مزيدًا من الدقة، بينما يكون TIMESTAMP مناسبًا عندما لا تكون الدقة أقل من الثانية حاسم.
  • التخزين بالتوقيت العالمي المنسق: اضبط المنطقة الزمنية لاتصال MySQL على التوقيت العالمي المنسق لضمان التعامل مع جميع أوقات التاريخ بشكل متسق.

تحويل أوقات التاريخ

  • إلى MySQL: قم بتحويل أوقات PHP إلى UTC قبل تخزينها في MySQL باستخدام DateTime::setTimezone('UTC').
  • من MySQL: قم بإنشاء كائن PHP DateTime من قيم MySQL، وحدد منطقة زمنية UTC لضمان التفسير الصحيح.

التعامل مع التوقيت الصيفي (DST)

لا يتعامل MySQL مع التوقيت الصيفي محليًا. توفر فئة DateTimeZone الخاصة بـ PHP مناطق زمنية محددة تتعامل تلقائيًا مع التوقيت الصيفي استنادًا إلى موقع المستخدم، والذي يجب استخدامه للطوابع الزمنية التي يواجهها المستخدم. تم إدراج البيانات دون مراعاة المناطق الزمنية، استخدم وظيفة MySQL CONVERT_TZ لتصحيح الطوابع الزمنية أثناء التحديد والتحديثات. بدلاً من ذلك، قم بتحديث الطوابع الزمنية عن طريق التحويل إلى UTC ثم العودة إلى المنطقة الزمنية المحلية.

تحديد المناطق الزمنية لتفضيلات المستخدم

اسم العرض المناطق الزمنية:

استخدم DateTimeZone::listIdentifiers() لاسترداد قائمة بالوقت المحدد المناطق.

التخزين في قاعدة البيانات:

احفظ المنطقة الزمنية المحددة للمستخدم كمفتاح أو معرف في قاعدة البيانات.
  • مثال على الكود
  • setTimezone($pst); // عرض الطابع الزمني المحول صدى "التوقيت العالمي:" . $utc->format('Y-m-d H:i:s') . "\ن"; صدى "PST:". $utc->format('Y-m-d H:i:s') . "\ن"; // تخزين تفضيلات المنطقة الزمنية للمستخدم $userTimezone = 'أمريكا/لوس_أنجيليس'; $query = "تحديث المستخدمين الذين قاموا بتعيين المنطقة الزمنية = '$userTimezone' أين ..."; ?>
ملاحظة:

من المهم تخزين الطوابع الزمنية وتحويلها باستمرار لتجنب عدم تناسق البيانات وارتباك المستخدم. باتباع هذه الإرشادات، يمكنك إدارة المناطق الزمنية بشكل فعال في تطبيقات PHP وMySQL.

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

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

Copyright© 2022 湘ICP备2022001581号-3