Tổng quan
Trong khi làm việc với cơ sở dữ liệu MySQL trong PHP, chúng tôi có thể cần ghi lại thể hiện thời gian xảy ra sự kiện. Trường hợp này có thể được lưu trữ dưới dạng bản ghi bảng. Chúng ta có thể ví dụ như một bản ghi bảng bằng cách sử dụng các loại dữ liệu MySQL datetime
hoặc timestamp
. Vấn đề liên quan đến quy trình này là nó không thể hiển thị ngày ở định dạng rất thân thiện với con người và dễ đọc.datetime
or timestamp
MySQL data types. The problem associated with this procedure is that it cannot display the date in a very human-friendly and easily-readable format.
Chúng tôi nhận được những điều sau đây từ các cột bảng datetime
và timestamp
của MySQL:
2021-11-17 13:02:18
Nhưng chúng tôi có thể muốn hiển thị ngày trong định dạng được hiển thị trong hình dưới đây:
Ảnh này dạy chúng ta cách hiển thị một ngày ở định dạng này, dưới dạng tập lệnh PHP.
Trước khi chúng tôi học cách hiển thị ngày ở định dạng đã nói ở trên, hãy để Lôi xem xét các vấn đề liên quan đến các cột dấu thời gian của bảng MySQL.
Các vấn đề
datetime
từ bảng là một chuỗi.- Nó xuất phát từ cột bảng cơ sở dữ liệu loại
timestamp
, thường trình bàydatetime
ở định dạng2021-11-17 13:02:18
. - Định dạng này không phải là dấu thời gian Unix. Chúng tôi cần phải chuyển đổi định dạng thành dấu thời gian UNIX để có được ngày ở định dạng được hiển thị trong hình trên.
Chuyển đổi chuỗi datetime
thành dấu thời gian UNIX
Một sự kết hợp của hai hàm PHP, các hàm
2 và
3, sẽ tạo ra một đầu ra giống như hình ảnh được hiển thị trong hình trên.
- Hàm
2 chuyển đổi bất kỳ chuỗi ngày nhất định nào thành dấu thời gian UNIX. Nó chỉ chấp nhận chuỗi ngày là một tham số.
2 function converts any given date string into a Unix timestamp. It only accepts the date string as a parameter. - Hàm
3 xuất ra thời gian hiện tại hoặc thời gian so với dấu thời gian được cung cấp [nếu có], theo định dạng được chỉ định. Nó lấy định dạng mà chúng tôi muốn hiển thị ngày trong và dấu thời gian tùy chọn là hai tham số của nó.
3 function outputs the current time, or the time relative to the provided timestamp [if any], in the specified format. It takes the format we wish to display the date in and the optional timestamp as its two parameters.
Bây giờ, chúng tôi sẽ đi sâu vào một số ví dụ mã.
Cách tiếp cận không chính xác
Mã dưới đây là một cách không chính xác để cố gắng để có được đầu ra mà chúng tôi đã hiển thị ở trên, đây có thể là cách tiếp cận đầu tiên của chúng tôi trong khi lần đầu tiên thử giải pháp cho vấn đề đó.
Đầu ra không phải là những gì chúng tôi muốn, và đó là vì chúng tôi đã chuyển đổi dấu thời gian thành dấu thời gian Unix thích hợp trước khi chuyển nó đến hàm
3.
Cách không chuyển đổi dấu thời gian
Cách tiếp cận chính xác
Trong mã thứ hai này, chúng tôi sử dụng hàm
2 để chuyển đổi chuỗi
datetime
từ bảng cơ sở dữ liệu thành dấu thời gian UNIX. Sau đó, với sự trợ giúp của hàm 3, chúng tôi đặt dấu thời gian thành các định dạng ngày khác nhau mà chúng tôi lựa chọn.
Dấu thời gian Unix là gì?
Đây là số giây kể từ thời gian Epoch datetime
0.
Để biết thêm các mẹo về chức năng PHP
3, chúng ta có thể thấy bài đăng này.
Lưu ý: ký tự thoát được sử dụng trong đoạn mã bên dưới để thoát các từ chỉ được sử dụng làm văn bản, để chúng không được giải thích đặc biệt bởi hàm.
Giải thích mã
Trong mã bên dưới, chuỗi datetime
, được lưu trong biến datetime
3, được chuyển đổi thành dấu thời gian UNIX với hàm
2. Sau đó, nó được lưu vào biến
datetime
5 trên dòng 5.Cách tiếp cận chính xác
Trong mã thứ hai này, chúng tôi sử dụng hàm
2 để chuyển đổi chuỗi
datetime
từ bảng cơ sở dữ liệu thành dấu thời gian UNIX. Sau đó, với sự trợ giúp của hàm 3, chúng tôi đặt dấu thời gian thành các định dạng ngày khác nhau mà chúng tôi lựa chọn.
Dấu thời gian Unix là gì?
Đây là số giây kể từ thời gian Epoch datetime
0.
Để biết thêm các mẹo về chức năng PHP 3, chúng ta có thể thấy bài đăng này.
Lưu ý: ký tự thoát được sử dụng trong đoạn mã bên dưới để thoát các từ chỉ được sử dụng làm văn bản, để chúng không được giải thích đặc biệt bởi hàm.
Giải thích mã
Trong mã bên dưới, chuỗi datetime
, được lưu trong biến datetime
3, được chuyển đổi thành dấu thời gian UNIX với hàm
2. Sau đó, nó được lưu vào biến
datetime
5 trên dòng 5.