اذهب إلى المحتوى

السؤال

نشر

لدي تاريخين في جدول ضمن قاعدة البيانات: created_at وهو الافتراضي من قبل لارافيل، وعمود آخر last_visit قمت أنا بإضافته على الجدول. وإن القيمة الافتراضية للحقلين هي 0000-00-00 00:00:00

عندما أقوم بطباعة نوع البيانات في الحقل الأول last_visit:

var_dump(last_visit)

يظهر لي النوع String، أما طباعة نوع الحقل created_at تظهر object/Carbon

فكيف يمكنني مقارنة التاريخين ضمن هذه الحقول؟ بما أن كل حقل له نمط مختلف؟

Recommended Posts

  • 0
نشر

إن Eloquent في لارافيل تقوم تلقائياً بتحويل الأنماط التابعة للـ timestamps أي الحقول: (created_at, updated_at) إلى غرض من نوع carbon، وللسهولة عندما نقوم بإضافة حقل تاريخ جديد نقوم بإضافة السطر التالي ضمن المودل ليتم تحويله من قبل لارافيل بشكل مماثل لباقي حقول التاريخ:

protected $dates = ['last_visit'];

الآن وبالنسبة للمقارنة فيوجد العديد من عمليات المقارنة التي تقدمها carbon مثل:


    eq() equals
    ne() not equals
    gt() greater than
    gte() greater than or equals
    lt() less than
    lte() less than or equals

ويمكننا استخدامها بالشكل التالي مثلاً:

if($model->last_visit->gt($model->created_at)){
    ....
}

 

  • 0
نشر

يمكنك مقارنة أي تاريخين في laravel باستخدام Carbon, و Carbon تقدم الدالة createFromFormat بهذا الشكل:

$date1 = Carbon::createFromFormat('m/d/Y H:i:s', '20/03/2021 11:30:00');
$date2 = Carbon::createFromFormat('m/d/Y H:i:s', '23/03/2020 11:30:00');

$result = $date1->eq($date2);
var_dump($result);

أو 

$date1 = Carbon::createFromFormat('m/d/Y H:i:s', '20/03/2021 11:30:00');
$date2 = Carbon::createFromFormat('m/d/Y H:i:s', '23/03/2020 11:30:00');

$result = $date1->ne($date2);
var_dump($result);

أو 

$date1 = Carbon::createFromFormat('m/d/Y H:i:s', '20/03/2021 11:30:00');
$date2 = Carbon::createFromFormat('m/d/Y H:i:s', '23/03/2020 11:30:00');

$result = $date1->gt($date2);
var_dump($result);

أو 

$date1 = Carbon::createFromFormat('m/d/Y H:i:s', '20/03/2021 11:30:00');
$date2 = Carbon::createFromFormat('m/d/Y H:i:s', '23/03/2020 11:30:00');

$result = $date1->gte($date2);
var_dump($result);

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...