Những điểm chính cần nắm
-
Carbon là gì?
Carbon là thư viện mở rộng từ DateTime của PHP, được tích hợp sẵn trong Laravel (từ phiên bản 5.3), giúp xử lý ngày giờ, múi giờ và định dạng datetime một cách linh hoạt.
-
Cách sử dụng Carbon trong Laravel và PHP:
Carbon hỗ trợ đầy đủ các thao tác phổ biến như xem thời gian hiện tại, tạo mốc thời gian, định dạng, so sánh, tính toán và hiển thị thời gian dưới dạng câu chữ.
Carbon là gì?
Carbon là một thư viện mã nguồn mở do Brian Nesbit phát triển, được xây dựng dựa trên class DateTime của PHP. Kể từ Laravel 5.3, Carbon đã được tích hợp sẵn trong framework, giúp lập trình viên xử lý các bài toán liên quan đến thời gian nhanh chóng và hiệu quả hơn.

Carbon cung cấp nhiều tính năng hữu ích như:
Cách sử dụng Carbon trong Laravel và PHP
1. Xử lý DateTime trong Laravel
Những ai từng làm việc với PHP đều biết rằng xử lý ngày giờ không hề đơn giản. Bạn thường phải dùng strtotime, xử lý format phức tạp, cộng trừ ngày tháng thủ công và rất dễ gây lỗi.
Carbon giúp giải quyết triệt để vấn đề này bằng cách mở rộng class DateTime, giúp code:
Carbon hỗ trợ:

2. Điều kiện cài đặt Carbon Laravel
Để sử dụng Carbon trong Laravel, bạn cần:
Trong ví dụ minh họa, môi trường sử dụng:
Carbon đã có sẵn trong Laravel nên bạn không cần cài thêm package riêng.
3. Thiết lập và sử dụng Carbon trong project
Để sử dụng Carbon, bạn chỉ cần import namespace:
Sau đó, bạn có thể sử dụng toàn bộ các tính năng của Carbon trong project Laravel hoặc PHP.
4. Lấy thời gian hiện tại với Carbon
Một số cách phổ biến để lấy ngày giờ:
Hoặc:
Các helper thường dùng:
Phân tích chuỗi thời gian:
Kết quả:
Carbon hỗ trợ các helper thân thiện như today(), yesterday(), tomorrow() giúp code ngắn gọn và dễ hiểu hơn rất nhiều.
5. Tạo ngày giờ tùy chỉnh trong Carbon
Ngoài việc lấy thời gian hiện tại, Carbon còn cho phép tạo DateTime từ các tham số cụ thể.
Tạo ngày:
Tạo thời gian:
Tạo đầy đủ ngày giờ:
Những hàm này rất hữu ích khi bạn làm việc với dữ liệu ngày giờ không theo định dạng chuẩn. Nếu truyền null, Carbon sẽ tự động dùng thời gian hiện tại.

6. Xử lý Date và Time nâng cao
Trong thực tế, bạn thường cần các phép toán phức tạp hơn. Ví dụ:
Carbon cho phép bạn thực hiện các phép toán này rất trực quan, chẳng hạn:
Điều này đặc biệt hữu ích trong các hệ thống như quản lý user, subscription, trial, booking,…
7. Getter và Setter trong Carbon
Ngoài các hàm tạo và xử lý, Carbon còn hỗ trợ getter và setter giúp bạn truy xuất hoặc thay đổi từng thành phần của datetime như:
Cách tiếp cận này giúp bạn kiểm soát datetime một cách chi tiết mà vẫn giữ code gọn gàng, dễ hiểu.