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

كيفية فرز مصفوفات التاريخ بتنسيقات مختلفة في PHP؟

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

How to Sort Date Arrays with Different Formats in PHP?

فرز مصفوفة التاريخ في PHP

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

في في حالتك المحددة، لديك مجموعة من التواريخ بتنسيقات مختلفة، مثل "2012-01-11" و"2014-01-01". لن يعمل استخدام الدالة asort، التي تفرز المصفوفات حسب القيم بترتيب تصاعدي، في هذه الحالة لأنها تتعامل مع كل تاريخ كسلسلة وتتجاهل التسلسل الهرمي للسنة والشهر واليوم.

لفرز المصفوفة بشكل صحيح، يمكنك استخدام وظيفة فرز مخصصة تقوم بتحويل كل تاريخ إلى تنسيق قابل للفرز قبل المقارنة.

تحويل التواريخ إلى طوابع زمنية UNIX

إحدى الطرق البسيطة هي تحويل كل تاريخ إلى طابع زمني لـ UNIX باستخدام الدالة strtotime(). تمثل الطوابع الزمنية لـ UNIX التواريخ بعدد الثواني منذ 01/01/1970، مما يسهل مقارنتها وفرزها.

إليك مثال لاستخدام وظيفة فرز مخصصة لفرز التواريخ باستخدام الطوابع الزمنية لـ UNIX:

usort($arr, function ($a, $b) {
    return strtotime($a) - strtotime($b);
});

ستأخذ هذه الدالة تاريخين كمدخلين (يمثلهما المتغيران $a و$b) وترجع الفرق بين الطوابع الزمنية لنظام UNIX. سيتم فرز المصفوفة الناتجة بترتيب زمني تصاعدي.

اعتبارات إضافية

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

بيان الافراج يتم استنساخ هذه المقالة في: 1729513697 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3