Mục lục:
1. Thiết lập time_zone tại Việt Nam
2. Định dạng ngày tháng với hàm date() trong PHP
3. Xử lý ngày tháng nâng cao trong PHP
Để cấu hình thời gian đúng theo giờ Việt Nam thì bắt buộc ban phải thiết lập time zone cho nó. Để thiết lập time zone thì ta sử dụng cú pháp như sau:
|
Lệnh này sẽ ảnh hưởng tới tất cả các lệnh xử lý ngày tháng phía bên dưới nó nên để chắc chắn thì bạn nên để lệnh này ở đầu file của chương trình nhé. Ví dụ khi làm việc với Codeigniter Framework thì bạn nên để nó ở file index.php
vì như vậy nó sẽ ảnh hưởng tới mọi controllers.
Để thiết lập time_zone ở Việt Nam thì bạn sử dụng lệnh sau:
|
Để xem danh sách time zone thì bạn sử dụng đoạn code sau:
|
Chạy lên và bạn thử tìm từ khóa "Asia/Ho_Chi_Minh" thì nó sẽ có trong danh sách đó đấy :)
Hàm date dùng để chuyển đổi thời gian theo format mà lập trình viên mong muốn, cú pháp như sau:
|
Trong đó:
$format
là định dạng mà hàm này sẽ trả về$timestamp
là thời gian truyền vào (kiểu INT), mặc định nó sẽ lấy thời gian hiện tại (chính là hàm time()).Sau đây mình sẽ liệt kê một số định dạng hay sử dụng nhất.
d
: trả về ngày tháng (số)D
: trả về ngày của tháng (tiếng Anh)m
: trả về tháng của năm (số)M
: Trả về tháng của năm (tiếng Anh)y
: trả trả về năm (2 số cuối của năm)Y
: trả về năm đầy đủ 4 sốH
: trả về số giờ (kiểu 24h)h
: trả về số giờ (kiểu 6h)i
: trả về số phúts
: trả về số giâyc
: trả về thời gian kiểu ISO 8601, thường dùng tạo cho thẻ meta publish time trong SEOVí dụ: Lấy thời gian hiện tại theo định dạng ngày/tháng/năm - giờ:phút:giây
Chiếu theo các định dạng ở danh sách trên thì ta sẽ có chuỗi format như sau: d/m/Y - H:i:s
Vậy mã code PHP sẽ là:
|
Chạy lên tại thời điểm mình viết bài này sẽ có kết quả là: 07/05/2016 - 19:02:36.
Bây giờ chúng ta tìm hiểu một số cách xử lý nâng cao hay sử dụng nhất.
+ Truyền chuỗi vào định dạng format
Nếu bạn muốn truyền một chuỗi vào định dạng format thì tôi khuyên bạn nên đặt dấu /
đằng trước mỗi ký tự, điều này sẽ giúp chuỗi không trùng với format key của PHP. Ví dụ bạn truyền vào format chuỗi "Bây giờ là H giờ" thì chữ i chính là số phút nên kết quả sẽ không như mong đợi.
|
Chạy lên kết quả sẽ là: 840â16 710ờ Saturdayà 19 710ờ
Nhưng nếu sửa code lại như sau:
|
Thì kết quả sẽ là: Bây giờ là 19 giờ
+ Chuyển đổi thời gian sang kiểu INT
Để chuyển đổi thời gian sang kiểu INT thì ta sử dụng hàm strtotime($time)
, ví dụ:
|
Kết quả trong máy mình sẽ là:1462649606
+ Định dạng ngày tháng trong MySQL
Để lưu đúng định dạng ngày tháng trong MySQL thì bạn sử dụng format như sau:
|
Nếu bạn muốn lưu trữ ngày tạo bài viết hoặc ngày comment hoặc ngày thực hiện một thao tác gì đó thì hãy sử dụng cú pháp đó nhé.
+ Xử lý cộng trừ ngày tháng với hàm mktime()
Hàm mktime sẽ tính toán đưa ra ngày chính xác bởi các tham số truyền vào, cú pháp như sau:
|
Lưu ý: Hàm này sẽ trả về thời gian kiểu INT nên bạn phải sử dụng hàm date() để chuyển đổi ra định dạng mong muốn.
Ví dụ: Cho ngày 20/11/2016, hãy cộng thêm 12 ngày nữa để xem kết quả ra bao nhiêu.
|
Bạn để ý nếu ngày 20 mà công thêm 12 ngày thì sẽ ra là ngày 32, lúc này tháng phải thăng lên 1 nên kết quả sẽ là: 02/12/2016
Ví dụ: Xem ngày mai, tháng tới, năm tới sẽ có ngày tháng năm bao nhiêu.
|
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: