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

كيفية مقارنة الأوقات في PHP: دليل شامل

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

How to Compare Times in PHP: A Comprehensive Guide

مقارنات الوقت في PHP: دليل تفصيلي

يمكن أن تكون مقارنة الأوقات في PHP مهمة صعبة لإتقانها. ستوفر هذه المقالة شرحًا شاملاً لكيفية مقارنة الأوقات بشكل فعال باستخدام طرق مختلفة.

حدود الحل الحالي

مقتطف الكود المقدم في السؤال، حيث تحاول مقارنة $NowisTime مع $ThatTime، تفشل لأن المقارنة تتم بين السلاسل. لا تأخذ مقارنة سلاسل PHP في الاعتبار الفروق الزمنية بشكل صحيح.

الحل باستخدام الطوابع الزمنية

أحد الأساليب الموثوقة هو تحويل كلا الوقتين إلى طوابع زمنية باستخدام mktime() أو strtotime () ثم قم بإجراء مقارنة رقمية. يوضح الكود المنقح التالي هذا:

$ThatTime = "14:08:10";
if (time() >= strtotime($ThatTime)) {
  echo "ok";
}

في هذه الحالة، يقوم time() بإرجاع الطابع الزمني الحالي، ويقوم strtotime() بتحويل $ThatTime إلى طابع زمني. أصبحت المقارنة الآن واضحة ودقيقة.

الحل باستخدام DateTime (مع الوعي بالمنطقة الزمنية)

تسمح فئة DateTime في PHP بإجراء مقارنات زمنية أكثر تعقيدًا تراعي المناطق الزمنية. وإليك كيفية الاستفادة منه:

$dateTime = new DateTime($ThatTime);
if ($dateTime->diff(new DateTime)->format('%R') == ' ') {
  echo "OK";
}

تحسب الطريقة diff() الفرق بين كائنين DateTime، وترجعه الطريقة format() بتنسيق معين، مثل '%R' هنا للإشارة إلى اختلاف موجب أو سلبي.

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

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

Copyright© 2022 湘ICP备2022001581号-3