Feb
13
2011

Chuyển đổi định dạng Date giữa PHP và MySql

Khi bạn sử dụng định dạng kiểu DateTime trong MySql để lưu trữ ngày tháng, thuờng khi lấy ra kiểu định dạng trình bày sẽ không như ý bạn. Bởi vì định dạng DateTime trong Mysql có số năm đầu tiên.
Hầu hết các định dạng ngày tháng trong MySql đều thuộc dạng YYYY-MM-DD nhưng bạn có thể chuyển sang DD-MM-YYYY khi hiển thị ra bằng cách sử dụng hàm DATE_FORMAT() với cú pháp như sau:
Ví dụ:

 SELECT DATE_FORMAT(birthday_date, '%d %m% %Y')
 FROM table_user
 hoặc bạn có thể viết như sau
 SELECT DATE_FORMAT(birthday_date, '%d-%m%-%Y')
 FROM table_user
 

Khi bạn nhập kiểu dữ liệu ngày tháng vào MySql từ PHP bạn có thể sử dụng hàm date(). Khi hiển thị ra bạn có thể sử dụng hàm DATE_FORMAT() hoặc UNIX_TIMESTAMP trong MySql.

Giải thích:
DATE_FORMAT: hàm này đuợc sư dụng trong MySql với 2 tham số, tham số là  thời gian cung cấp sẵn kiểu DateTime lưu trong database, tham số thứ 2 là định dạng bạn muốn chuyển đổi thành khi hiên thị ra kết quả. Trong ví dụ trên %d là định dạng ngày 2 con số, %m là định dạng tháng 2 con số, %Y là hiển thị năm với 4 con số.
Hàm UNIX_TIMESTAMP() cũng tương tự như hàm DATE_FORMAT() nhưng chuyển đổi cho các cột có dữ liệu kiểu Unix Time Stamp.(Tìm hiểu rõ hơn về Unix Time Stamp)
Ví dụ:

 SELECT UNIX_TIMESTAMP(birthday_date, '%d-%m%-%Y')
 FROM table_user
 

Bảng định dạng ngày tháng năm trong MySql
———————————————————
Mã           Diễn giải
———————————————————
%M    Month, tháng đầy đủ (January)
%W   Weekday, ngày trong tuần đầy đủ(Sunday)
%D    Day, ngày trong tháng dạng số có thứ bật theo sau(1st)
%Y Year, năm đầy đủ (4 số)
%a day, ngày trong tuần 3 ký tự (Sun)
%d day, ngày trong tháng có số 0 (01-31)
%e day, ngày trong tháng không kèm số
%m Month, tháng trong năm kèm 0 (01-12)

About the Author: phuc vh

Comments are closed.