العمل مع التواريخ في PHP: مكتبة Carbon

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Carbon؟

Carbon هي مكتبة شائعة للتعامل مع التواريخ والوقت في PHP. وهي امتداد للفئة المدمجة DateTime وتوفر واجهة برمجة تطبيقات (API) أكثر سهولة وقابلية للقراءة ووظائفية. غالبًا ما يُطلق على Carbon اسم "DateTime للناس"، لأنه يبسط عمليات التلاعب بالتواريخ والتنسيق وحساب الفروق والعمل مع المناطق الزمنية.

لماذا نحتاج Carbon؟

غالبًا ما تتطلب دوال PHP المدمجة للتعامل مع التواريخ (date(), strtotime(), DateTime) كتابة كود ضخم ويصعب قراءته. يحل Carbon هذه المشكلات:

  • طرق بديهية: ->addDays(), ->subMonths(), ->diffForHumans().
  • التدويل (Localization) وإخراج تنسيقات "بشرية" (مثل "منذ يومين").
  • عمل بسيط مع المناطق الزمنية.
  • كائنات غير قابلة للتغيير (immutable) للعمل الآمن.

التثبيت

قم بتثبيت Carbon عبر Composer:

composer require nesbot/carbon

بعد التثبيت، قم بتضمين المكتبة:

<?php
require 'vendor/autoload.php';
use Carbon\\Carbon;

الوظائف الأساسية مع أمثلة

1. إنشاء تاريخ

// التاريخ والوقت الحالي
$now = Carbon::now();

// من نص
$date = Carbon::parse('2025-03-15');

// من تنسيق
$date = Carbon::createFromFormat('Y-m-d', '2025-03-15');

2. التلاعب بالتواريخ

$date = Carbon::now();

// إضافة 7 أيام
$date->addDays(7);

// طرح شهر واحد
$date->subMonth();

// بداية الشهر
$date->startOfMonth();

3. الفرق بين التواريخ

$start = Carbon::parse('2025-01-01');
$end = Carbon::parse('2025-12-31');

// عدد الأيام
$days = $start->diffInDays($end); // 364

// تنسيق بشري
echo $start->diffForHumans($end); // "11 شهرًا بعد"

4. التنسيق

$date = Carbon::now();
echo $date->toDateString(); // 2025-03-15
echo $date->format('l jS \\of F Y'); // Saturday 15th of March 2025

5. التحقق من التواريخ

$date = Carbon::parse('2025-03-15');
var_dump($date->isWeekend()); // true (السبت)
var_dump($date->isFuture()); // false
var_dump($date->isPast()); // true

متى تستخدم Carbon؟

Carbon مثالية لـ:

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

إذا كنت تستخدم إطارات العمل Laravel أو Symfony، فإن Carbon مدمجة بالفعل فيها افتراضيًا.

الخلاصة

Carbon هي مكتبة لا غنى عنها لأي مطور PHP. إنها توفر الوقت، وتجعل الكود أنظف، وتخلصك من الأخطاء النمطية عند العمل مع التواريخ. قم بتثبيتها في مشروعك اليوم!

توصيات