Skip to content

Instantly share code, notes, and snippets.

@nmvuong92
Last active January 18, 2019 07:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nmvuong92/19c19ee519b0fc6b06a8fb5505ba04aa to your computer and use it in GitHub Desktop.
Save nmvuong92/19c19ee519b0fc6b06a8fb5505ba04aa to your computer and use it in GitHub Desktop.
Unix timestamp - Thời gian Unix

1

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/20171483228800 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()

2

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(); ?>

3 Chuyển đổi Time Stamp với hàm getdate() trong PHP

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

Chuyển đổi Time Stamp với date() trong PHP

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
 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment