[Laravel] Hướng dẫn sử dụng thư viện Carbon giúp xử lý datetime dễ dàng hơn trong Laravel
Carbon là một gói phần mềm được phát triển bởi Brian Nesbit mở rộng từ class DateTime của PHP. Việc xử lý với thời gian rất dễ dàng khi chúng ta sử dụng Carbon. Vì vậy trong bài viết này vncoder.vn sẽ hướng dẫn các bạn cách sử dụng thư viện Carbon trong Laravel.
Thư viện Carbon giúp chúng ta rất nhiều trong việc xử lý datetime trong PHP. Điển hình như:
- Xử lý timezone.
- Lấy ngày tháng hiện tại dễ dàng.
- Convert datetime sang định dạng khác để đọc
- Dễ dàng thao tác với datetime.
- Chuyển đổi cú pháp là cụm từ tiếng anh sang datetime.
- Để sử dụng được Carbon bạn cần import thư viện
use Carbon\Carbon;
Ví dụ:
- Lấy thời gian:
Carbon::now(); // thời gian hiện tại 2018-10-18 14:15:43
Carbon::yesterday(); //thời gian hôm qua 2018-10-17 00:00:00
Carbon::tomorrow(); // thời gian ngày mai 2018-10-19 00:00:00
$newYear = new Carbon('first day of January 2018'); // 2018-01-01 00:00:00
- Để lấy thời gian hiện tại tại Việt Nam ta sẽ thêm locale của Việt nam như sau:
echo Carbon::now('Asia/Ho_Chi_Minh'); // 2018-10-18 21:15:43
- Để biết thêm về các nước khác bạn có thể tại trang chủ của PHP: Timezone
- Bạn cũng có thể chuyển đổi kiểu datetime khác:
$dt = Carbon::now('Asia/Ho_Chi_Minh');
echo $dt->toDayDateTimeString(); Thu, Oct 18, 2018 9:16 PM
echo $dt->toFormattedDateString(); // Oct 18, 2018
echo $dt->format('l jS \\of F Y h:i:s A'); // Thursday 18th of October 2018 09:18:57 PM
echo $dt->toDateString(); // 2018-10-18
echo $dt->toTimeString(); // 21:16:20
echo $dt->toDateTimeString(); // 2018-10-18 21:16:16
- Các bạn cũng có thể chỉ lấy ngày, tháng, năm, giờ, phút, giây, ngày của tuần, ngày của tháng, ngày của năm, tuần của tháng, tuần của năm, số ngày trong tháng.
Carbon::now()->day; //ngày
Carbon::now()->month; //tháng
Carbon::now()->year; //năm
Carbon::now()->hour; //giờ
Carbon::now()->minute; //phút
Carbon::now()->second; //giây
Carbon::now()->dayOfWeek; //ngày của tuần
Carbon::now()->dayOfYear; //ngày của năm
Carbon::now()->weekOfMonth; //ngày của tháng
Carbon::now()->weekOfYear; //tuần của năm
Carbon::now()->daysInMonth; //số ngày trong tháng
- Có thể tăng giảm ngày, tháng, năm, giờ, phút, giây bằng hàm 2 hàm add() và sub()
$dt = Carbon::now();
echo $dt->addYears(5);
echo $dt->addYear();
echo $dt->subYear();
echo $dt->subYears(5);
echo $dt->addMonths(60);
echo $dt->addMonth();
echo $dt->subMonth();
echo $dt->subMonths(60);
echo $dt->addWeeks(3);
echo $dt->addWeek();
echo $dt->subWeek();
echo $dt->subWeeks(3);
echo $dt->addDays(29);
echo $dt->addDay();
echo $dt->subDay();
echo $dt->subDays(29);
echo $dt->addHours(24);
echo $dt->addHour();
echo $dt->subHour();
echo $dt->subHours(24);
...
- Ta cũng có thể so sánh với thời gian hiện tại một cách dễ dàng: Nó sẽ trả về là true hay false.
$now = Carbon::now();
$now->isWeekday();
$now->isWeekend();
$now->isYesterday();
$now->isToday();
$now->isTomorrow();
$now->isFuture()
$now->isPast();
$now->isBirthday(); // là ngày sinh nhật hay không
- Tính toán sự khác nhau giữa 2 datetime:
$dt = Carbon::create(2018, 10, 18, 21, 40, 16); //Tạo 1 datetime
$now = Carbon::now();
echo $now->diffInSeconds($dt);
echo $now->diffInMinutes($dt);
echo $now->diffInHours($dt);
echo $now->diffInDays($dt);
echo $now->diffInMonths($dt);
echo $now->diffInYears($dt);
- Như trên facebook các bạn thấy các bài viết sẽ có trạng thái là 1 phút trước, 1 giờ trước chẳng hạn Carbon cũng hỗ trợ các bạn phần này luôn:
Carbon::setLocale('vi'); // hiển thị ngôn ngữ tiếng việt.
$dt = Carbon::create(2018, 10, 18, 14, 40, 16);
$dt2 = Carbon::create(2018, 10, 18, 13, 40, 16);
$now = Carbon::now();
echo $dt->diffForHumans($now); //12 phút trước
echo $dt2->diffForHumans($now); //1 giờ trước
Kết luận
Trên đây là toàn bộ những kiểu thường hay được sử dụng trong thư viện Carbon mà vncoder.vn đã giới thiệu đến các bạn. Chúc các bạn vận dụng thành công!
Xem thêm
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
Bài viết mới
Được xem nhiều nhất
[Laravel] Hướng dẫn tích hợp thanh toán online, tích hợp cổng thanh to...
[Laravel] Sử dụng Ajax làm chức năng tìm kiếm trong Laravel
[Laravel] Cách sử dụng Charts - hướng dẫn vẽ biểu đồ trong Laravel
[Laravel] Hướng dẫn sử dụng Raw DB Query trong Laravel
[Laravel] Hướng dẫn đăng nhập, đăng ký tài khoản bằng tài khoản Facebo...
Khóa học liên quan
Xây dựng ứng dụng với Laravel và Vuejs
Lượt xem: 16250
Chuyên mục: Laravel