Tuy nhiên, dấu thời gian Unix dễ dàng có trong tập lệnh, chúng không tốt cho người dùng cuối - ít người theo dõi ngày của họ bằng cách sử dụng số giây
Như đã đề cập, người dùng muốn có ngày của họ ở tất cả các loại định dạng, vì vậy PHP cung cấp cho bạn lựa chọn chuyển đổi dấu thời gian thành chuỗi theo một số cách sử dụng hàm date[]
Date[] nhận hai tham số, với tham số thứ hai là tùy chọn như với strtotime[]. Tham số một là một chuỗi đặc biệt chứa mã định dạng cho cách bạn muốn dấu thời gian được chuyển đổi. Tham số hai là dấu thời gian bạn muốn chuyển đổi - nếu bạn không cung cấp dấu thời gian này, PHP sẽ cho rằng bạn muốn sử dụng thời gian hiện tại
Tham số một là chìa khóa. đó là một chuỗi các chữ cái từ danh sách tùy chọn được xác định trước. Bạn có thể sử dụng các ký tự khác trong chuỗi và các ký tự này được sao chép trực tiếp vào ngày được định dạng. Nếu bạn đang cố đặt các từ ở định dạng ngày mà bạn không muốn chuyển đổi thành ngày tương đương của chúng, bạn cần thoát chúng bằng dấu gạch chéo ngược \. Để làm cho mọi thứ trở nên khó hiểu hơn, nếu chữ cái đã thoát của bạn là một chuỗi thoát hiện có, thì bạn cần phải thoát lại lần nữa. Nếu điều đó nghe có vẻ khó hiểu, đừng lo lắng - chúng ta sẽ xem xét các ví dụ
Dưới đây là danh sách đầy đủ các ký tự định dạng ngày. Lưu ý rằng chúng phân biệt chữ hoa chữ thường
Định dạng ký tự
Sự miêu tả
Ví dụ
a
Chữ thường sáng/chiều
sáng hoặc chiều
A
Chữ hoa sáng/chiều
sáng hoặc chiều
B
Thời gian Internet
000 đến 999
c
Ngày, giờ và múi giờ theo tiêu chuẩn ISO 8601
2004-06-18T09. 26. 55+01. 00
d
Ngày có 2 chữ số trong tháng, số 0 ở đầu
01 đến 31
D
Chuỗi ngày, ba chữ cái
Thứ Hai, Thứ Năm, Thứ Bảy
F
Chuỗi tháng, đầy đủ
tháng giêng, tháng tám
g
Giờ đồng hồ 12 giờ, không có số 0 đứng đầu
1 đến 12
G
Giờ đồng hồ 24 giờ, không có số 0 đứng đầu
0 đến 23
h
Giờ đồng hồ 12 giờ, số 0 ở đầu
01 đến 12
H
Giờ đồng hồ 24 giờ, số 0 đứng đầu
00 đến 23
i
Phút có số 0 đứng đầu
00 đến 59
I
Thời gian tiết kiệm ánh sáng ban ngày có hoạt động không?
1 nếu có, 0 nếu không
j
Ngày trong tháng, không có số 0 đứng đầu
1 đến 31
l
Chuỗi ngày, đầy đủ
Thứ hai Thứ bảy
L
Có phải là một năm nhuận?
1 nếu có, 0 nếu không
m
Tháng số, số 0 đứng đầu
01 đến 12
M
Chuỗi tháng ngắn
tháng 1, tháng 8
n
Tháng dạng số, không có số 0 đứng đầu
1 đến 12
O
Sự khác biệt so với GMT
200
r
Ngày định dạng RFC-822
Thứ bảy, ngày 22 tháng 12 năm 1979 17. 30 +0000
s
Giây, với số 0 đứng đầu
00 đến 59
S
Hậu tố thứ tự tiếng Anh cho số ngày
st, nd, rd hoặc th
t
Số ngày trong tháng
28 đến 31
T
Múi giờ cho máy chủ
GMT, CET, Múi giờ miền Đông
U
Dấu thời gian Unix
1056150334
w
Số ngày trong tuần
0 [Chủ Nhật], 6 [Thứ Bảy]
W
ISO-8601 số tuần của năm
30 [tuần thứ 30 trong năm]
y
Đại diện hai chữ số của năm
97, 02
Y
Đại diện bốn chữ số của năm
1997, 2002
z
Ngày trong năm
0 đến 366
Z
Độ lệch múi giờ tính bằng giây
-43200 đến 43200
Như bạn có thể thấy, có rất nhiều lựa chọn dành cho bạn khi chuyển đổi từ dấu thời gian sang ngày tháng. Dưới đây là một số ví dụ về các ký tự định dạng được sử dụng
Dòng đầu tiên là dòng cơ bản nhất và in ra thời gian hiện tại ở định dạng đồng hồ 24 giờ. Dòng thứ hai phức tạp hơn một chút khi trộn đầu ra của date[] với một chuỗi văn bản để có được một câu lệnh trông tự nhiên
Dòng ba rất đơn giản - nó chỉ in năm hiện tại. Nhưng ở dòng 4, chúng ta có một ví dụ phức tạp hơn, nó đưa ra ngày ở định dạng "22nd of October 2003". Lưu ý rằng chúng tôi có từ "của" trong đó giữa định dạng ngày và nó đã được chuyển liền mạch đến đầu ra thay vì được chuyển đổi. Lý do cho điều này là chữ thường O và chữ thường F không có bất kỳ mục đích định dạng nào trong hàm ngày tháng [mặc dù điều này có thể được thay đổi trong tương lai] nên chúng chỉ được sao chép thẳng vào đầu ra
Ở dòng thứ năm, bạn có thể thấy chúng tôi có hàm ngày tháng được nhúng giữa hai chuỗi khác, điều này làm cho đầu ra trông đặc biệt đẹp mắt. Có thể nhúng các chuỗi bên trong định dạng ngày, nhưng cuối cùng nó trông giống như dòng năm
Trong dòng sáu, bạn có thể thấy rằng các chuỗi tương tự từ dòng bốn hiện nằm trong định dạng ngày tháng. Hầu hết các chữ cái trong đó có chức năng như các ký hiệu định dạng ngày nên chúng đã được thoát. \M\y, v.v. Chữ thường B, chữ thường O và chữ thường E đều không có ý nghĩa định dạng ngày, vì vậy chúng không được thoát. Chữ thường R, chữ thường T và chữ thường N đều có ý nghĩa đặc biệt như chính các chuỗi thoát [trả về xuống dòng, tab và dòng mới], có nghĩa là chúng cần được thoát kép. Lưu ý rằng mỗi chuỗi thoát có hai dấu gạch chéo ngược trước chúng chứ không phải một - đó là chìa khóa. Một dấu gạch chéo ngược ngăn PHP đọc chúng dưới dạng ký tự định dạng ngày và dấu gạch chéo ngược còn lại ngăn PHP đọc chúng dưới dạng chuỗi thoát
Có rất nhiều thứ bạn có thể làm với ngày tháng, vì vậy tôi thực sự khuyên bạn nên thử với các định dạng khác nhau để xem bạn có thể làm gì với các kết hợp khác nhau
Bạn muốn học PHP 7?
Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay
Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó