مقدمه
کار کردن با تاریخ و زمان در PHP میتواند پیچیده باشد. باید با strtotime، مشکلات فرمت، محاسبات زیاد و موارد دیگر سروکار داشته باشیم.
پکیج Carbon کمک میکند کار با تاریخ و زمان در PHP بسیار سادهتر و خواناتر شود تا کد ما قابل نگهداریتر باشد.
Carbon پکیجی است که توسط Brian Nesbit ساخته شده و کلاس داخلی DateTime در PHP را گسترش میدهد.
این پکیج امکانات خوبی برای کار با تاریخ در PHP فراهم میکند، از جمله:
-
مدیریت timezone ها
-
گرفتن زمان فعلی بهسادگی
-
تبدیل datetime به حالت خوانا برای انسان
-
تبدیل جمله انگلیسی به تاریخ (مثل
"first day of January 2016") -
اضافه و کم کردن زمان (
+2 weeks،-6 months) -
روش معنایی و ساده برای کار با تاریخها
در این مقاله، Carbon را نصب کرده و قابلیتهای آن را بررسی میکنیم.
پیشنیازها
برای دنبال کردن این آموزش نیاز دارید:
-
یک محیط توسعه Laravel فعال داشته باشید
-
یا طبق مستندات Laravel آن را نصب کنید
-
اگر از Laravel Sail استفاده کنید، به Docker نیاز دارید
این آموزش با نسخههای زیر تست شده است:
-
PHP 8.0.5
-
Composer 2.0.13
-
MySQL 8.0.24
-
Laravel 8.40.0
-
Carbon 2.31
راهاندازی پروژه
برای استفاده از Carbon باید آن را import کنیم:
خبر خوب اینکه Carbon بهصورت پیشفرض داخل Laravel وجود دارد.
گرفتن یک تاریخ یا زمان مشخص
گرفتن زمان فعلی:
یا:
گرفتن تاریخ امروز:
دیروز:
فردا:
parse کردن یک رشته:
خروجی:
ساخت تاریخ با کنترل بیشتر
ساخت تاریخ از اجزای جداگانه:
ساخت زمان:
ساخت کامل:
اگر مقدار null بدهید، مقدار فعلی جایگزین میشود.
تغییر دادن تاریخ و زمان
مثلاً برای محاسبه پایان دوره آزمایشی ۳۰ روزه:
متدهای دیگر:
-
addYear / subYear
-
addMonths / subMonths
-
addDays / subDays
-
addWeeks / subWeeks
-
addHours / subHours
-
addMinutes / subMinutes
-
addSeconds / subSeconds
نکته مهم:
اگر به 31 ژانویه یک ماه اضافه کنید، ممکن است به 3 مارس برسد (به خاطر overflow).
برای جلوگیری:
استفاده از Getter و Setter
خواندن مقادیر:
تغییر مقادیر:
یا به صورت chain:
یا:
یا:
خروجی:
فرمتبندی تاریخ و زمان
متدهای آماده:
فرمت سفارشی:
نمونه خروجی:
محاسبه اختلاف زمان
اختلاف عددی
نمایش اختلاف به زبان انسانی
مثلاً:
خروجی:
یا:
نتیجهگیری
در این مقاله Carbon را نصب کردید و قابلیتهای آن برای مدیریت تاریخ و زمان در PHP و Laravel را یاد گرفتید.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران