Khái niệm quen thuộc trong hệ thống Unix và lập trình PHP. Thời gian Unix, là hệ thống nhằm diễn tả một điểm trên trục thời gian, theo trục thời gian nó sử dụng số giây kể để xác định thời điểm, với điểm gốc từ thời điểm 00:00:00 ngày 1/1/1970
(UTC).
Ví dụ lúc 00:00:00 - 1/1/2017
có giá trị timestamp là 1483228800
; Có nghĩa là tính từ 00:00:00 - 1/1/1970
đến 00:00:00 - 1/1/2017
là 1483228800
giây.
Trong PHP sử dụng hàm time()
để lấy timestamp hiện tại. Để đổi thời gian dạng timestamp
sang các định dạng ngày tháng khác dùng hàm date()
Hàm time() trong PHP cung cấp cho bạn tất cả thông tin bạn cần về date và time hiện tại. Nó không yêu cầu tham số nhưng trả về một integer.
Số integer được trả về bởi hàm time() biểu diễn số giây đã trôi qua từ nửa đêm 1/1/1970. Dưới đây là ví dụ minh họa:
<?php print time(); ?>
Hàm getdate() chấp nhận một time stamp và trả về một mảng liên hợp chứa thông tin về date. Nếu bạn bỏ sót time stamp này, thì nó làm việc với time stamp hiện tại khi được trả về bởi time().
Bảng dưới liệt kê các phần tử được chứa trong mảng liên hợp được trả về bởi getdate() trong PHP: Key Miêu tả Ví dụ
Key | Miêu tả | Ví dụ |
---|---|---|
seconds | Giây của phút (0-59) | 20 |
minutes | Phút của giờ (0 - 59) | 29 |
hours | Giờ của ngày (0 - 23) | 22 |
mday | Ngày của tháng (1 - 31) | 11 |
wday | Ngày trong tuần (0 - 6) | 4 |
mon | Tháng trong năm (1 - 12) | 7 |
year | Năm (4 chữ số) | 1997 |
yday | Ngày trong năm ( 0 - 365 ) | 19 |
weekday | Ngày trong tuần | Thursday |
month | Tháng trong năm | January |
0 | Timestamp | 948370048 |
ví dụ:
$date_array = getdate();
foreach ( $date_array as $key => $val ) {
print "$key = $val<br />";
}
$mydate=getdate(date("U")); //bạn tham khảo hàm date() ở bên dưới print "Today: "; echo "$mydate[weekday], $mydate[month] $mydate[mday], $mydate[year]";
Kết quả:
seconds = 8
minutes = 38
hours = 7
mday = 18
wday = 5
mon = 1
year = 2019
yday = 17
weekday = Friday
month = January
0 = 1547793488
Hàm date() trong PHP trả về một chuỗi đã được định dạng biểu diễn một date. Bạn có thể thực hành các điều khiển đa dạng thông qua định dạng mà hàm date() trả về với một tham số chuỗi mà bạn muốn truyền cho nó.
date(format,timestamp)
Nếu không sử dụng (một cách tùy ý) một Time stamp trong hàm date(), thì date và time hiện tại sẽ được sử dụng. Bất kỳ dữ liệu nào khác bạn bao trong chuỗi định dạng đã truyền cho date() sẽ được bao trong giá trị trả về.
Bảng dưới liệt kê một số code mà một chuỗi định dạng có thể chứa:
Định dạng | Miêu tả | Ví dụ |
---|---|---|
a | 'am' hoặc 'pm' dạng chữ thường | pm |
A | 'AM' hoặc 'PM' dạng chữ hoa | PM |
d | Ngày của tháng, dạng số bắt đầu từ 01 | 20 |
D | Ngày trong tuần (3 chữ cái) | Thu |
F | Tên tháng | January |
h | Giờ (định dạng 12h, dạng từ 01) | 12 |
H | Giờ (định dạng 24h, dạng từ 01) | 22 |
g | Giờ (định dạng 12h, dạng từ 1) | 12 |
G | Giờ (định dạng 24h, dạng từ 1) | 22 |
i | Phút ( 0 - 59 ) | 23 |
j | Ngày trong tháng (dạng 1) | 20 |
l (Lower 'L') | Ngày trong tuần | Thursday |
L | Năm nhuận ('1' cho yes, '0' cho no) | 1 |
m | Tháng trong năm (số, dạng 01) | 1 |
M | Tháng trong năm (3 chữ cái) | Jan |
r | Date theo định dạng RFC 2822 | Thu, 21 Dec 2000 16:01:07 +0200 |
n | Tháng trong năm (số, dạng 1) | 2 |
s | Giây trong giờ | 20 |
U | Time stamp | 948372444 |
y | Năm (2 chữ số) | 06 |
Y | Năm (4 chữ số) | 2006 |
z | Ngày trong năm (0 - 365) | 206 |
Z | Offset bằng giá trị giây từ GMT | +5 |
Tới giờ, bạn có thể định dạng date và time này trong bất kỳ định dạng nào bạn muốn. |
Ví dụ
// in ngày trong tuần
echo date("l") . "<br>"; // in ngày trong tuần, ngày trong tháng, tháng, năm, thời gian, AM hoặc PM
echo date("l jS \of F Y h:i:s A") . ""; // hiển thị October 3, 1975 là vào Friday echo "Oct 3,1975 was on a ".date("l", mktime(0,0,0,10,3,1975)) . "<br>"; // sử dụng một hằng số trong tham số format echo date(DATE_RFC822) . "<br>"; // hiển thị date time dưới dạng giống như: 1975-10-03T00:00:00+00:00
echo date(DATE_ATOM,mktime(0,0,0,10,3,1975));
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Friday
Friday 18th of January 2019 08:08:14 AM1975-10-03T00:00:00+01:00