Hướng dẫn dùng parseexact datetime trong PHP

Hàm date() sẽ xuất ra một chuỗi thời gian dựa theo định dạng được truyền vào và số nguyên timestamp.

Nội dung chính

  • Kết quả trả về
  • 1. Chức năng của hàm date()
  • 2. Cú pháp của hàm date()
  • 3. Một số ví dụ sử dụng hàm date()
  • 3.1. Các định dạng thời gian với hàm date()
  • 3.2. Một số ví dụ về định dạng với hàm date()
  • 3.3. Hàm date() với default timezone
  • 3.4. Thay đổi default timezone trong PHP

Nội dung chính

  • Kết quả trả về
  • 1. Chức năng của hàm date()
  • 2. Cú pháp của hàm date()
  • 3. Một số ví dụ sử dụng hàm date()
  • 3.1. Các định dạng thời gian với hàm date()
  • 3.2. Một số ví dụ về định dạng với hàm date()
  • 3.3. Hàm date() với default timezone
  • 3.4. Thay đổi default timezone trong PHP

Hướng dẫn dùng parseexact datetime trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú pháp: date( $format,  $timestamp);

Trong đó:

  • $format là định dạng  thời gian mà hàm sẽ trả về.
  • $timestamp là một số nguyên Unix timestamp. nếu không truyền tham số này, nó sẽ lấy timestamp của thời điểm hiện tại.

Kết quả trả về

Hàm sẽ trả về một chuỗi thời gian đúng với định dạng $format đã truyền vào nếu chạy thành công. Nếu $timestamp truyền vào không phải là số hàm sẽ trả về FALSE và sẽ xuất ra cảnh báo.

Bài viết này được đăng tại [free tuts .net]

Ví dụ

Cách sử dụng hàm $date() lấy thời gian hiện tại.

Code

echo date("F j, Y, g:i a")."<br />"; echo date("m.d.y")."<br />"; echo date("j, n, Y")."<br />"; echo date("Ymd")."<br />"; echo date('h-i-s, j-m-y, it is w Day')."<br />"; echo date('\i\t \i\s \t\h\e jS \d\a\y.')."<br />"; echo date("D M j G:i:s T Y")."<br />"; echo date('H:m:s \m \i\s\ \m\o\n\t\h')."<br />"; echo date("H:i:s")."<br />"; echo date("Y-m-d H:i:s")."<br />";

Kết quả

May 4, 2017, 2:22 pm 05.04.17 4, 5, 2017 20170504 02-22-35, 4-05-17, 2231 2235 4 Thupm17 it is the 4th day. Thu May 4 14:22:35 ICT 2017 14:05:35 m is month 14:22:35 2017-05-04 14:22:35

Định dạng thời gian tại một thời điểm nào đó.

Code

$date = mktime(15,50,30,4,30,2017); echo date("F j, Y, H:i a", $date)."<br />"; echo date("Y-m-d H:i:s", $date)."<br />";

Kết quả

April 30, 2017, 15:50 pm 2017-04-30 15:50:30

Tham khảo: php.net

Mình thấy các bạn thường copy hàm date() để dùng nhưng có thể là chưa hiểu rõ về hàm này. Do đó, dẫn đến việc cứ copy rồi thử nhiều đối số với hàm date() cho đến khi bạn được kết quả mong muốn.

Nội dung chính

  • 1. Chức năng của hàm date()
  • 2. Cú pháp của hàm date()
  • 3. Một số ví dụ sử dụng hàm date()
  • 3.1. Các định dạng thời gian với hàm date()
  • 3.2. Một số ví dụ về định dạng với hàm date()
  • 3.3. Hàm date() với default timezone
  • 3.4. Thay đổi default timezone trong PHP

Nhưng như thế thì mắc công quá. Sao chúng ta không cùng nhau hiểu rõ về hàm date() để sau này dùng một phát là chính xác luôn, không cần “mò mò thử thử” cho phí sức và tốn thời gian nữa. Let’s go!

1. Chức năng của hàm date()

Hàm date() trong PHP có chức năng trả về thời gian hiện tại dưới dạng chuỗi ký tự theo định dạng (format) thiết lập trước. Nếu bạn có một dấu thời gian (timestamp) và muốn định dạng nó theo một định dạng ngày giờ nào đó, hàm date() cũng sẽ thực hiện giúp bạn.

Lưu ý: Dấu thời gian (timestamp) là một cách biểu diễn thời gian. Nó thường là một số nguyên được mã hóa từ một thời gian nào đó. Ví dụ, ta có thời gian: 19-10-2021 05:30:59 có thể được mã hóa thành timestamp 1634614259.

Trong PHP, có thể dùng lớp DateTimeđể mã hóa thời gian thành timestamp như sau:

$date = new DateTime("19-10-2021 05:30:59");
echo $date->getTimestamp();//1634614259

2. Cú pháp của hàm date()

date(string $format, int $timestamp = null): string

Trong đó:

  • $format là chuỗi định dạng theo quy ước của lớp DateTimeInterface::format() trong PHP. Nếu sai định dạng có thể gây ra lỗi.
  • $timestamp là tham số tùy chọn, có thể có hoặc không. Nếu không có thì hàm date() sẽ trả về thời gian hiện tại theo $format. Nếu có timestamp thì hàm date() sẽ trả về thời gian được biểu diễn của timestamp theo $format.
  • Kiểu trả về là chuỗi ký tự (string) của thời gian theo định dạng thiết lập trước.

Lưu ý: Nếu $format không đúng định dạng theo quy định hoặc $timestamp không phải kiểu số nguyên thì sẽ gây ra lỗi.

3. Một số ví dụ sử dụng hàm date()

3.1. Các định dạng thời gian với hàm date()

Các định dạng trong hàm date() được quy ước sẵn theo format() của lớp DateTimeInterface::format(). Bên dưới là một số quy ước thường dùng:

Ký tự format Mô tả Giá trị trả về
Ngày (day)
d Ngày của tháng, có 2 ký số (có thể bắt đầu với 0) 01, 02 đến 09 đến 31
D Có 3 ký tự viết tắt đại diện cho thứ trong tuần Mon, Tue đến Sun
j Ngày của tháng, không bắt đầu với 0 1, 2 đến 9 đến 31
l Tên đầy đủ của thứ trong tuần Monday, Tuesday đến Sunday
N Là số đại diện cho ngày trong tuần theo tiêu chuẩn ISO-8601 1 (thứ hai) đến 7 (chủ nhật)
S Có 2 ký tự thể hiện thứ tự của ngày trong tháng st, nd, rd hoặc th. Thường dùng với ký tự format j, ví dụ 5th
W Là số đại diện cho ngày trong tuần 0 (chủ nhật) đến 6 (thứ bảy)
z Ngày trong năm, bắt đầu từ 0 0 đến 365
Tuần (week)
W Số tuần trong năm theo tiêu chuẩn ISO-8601 Ví dụ: 42 (tuần thứ 42 trong năm)
Tháng (month)
F Tên đầy đủ của tháng January đến December
m Là số đại diện cho tháng (có thể bắt đầu với 0) 01 đến 12
M 3 ký tự viết tắt đại điện cho tháng Jan, Feb đến Dec
n Là số đại diện cho tháng, không bắt đầu với 0 1 đến 12
t Số ngày tối đa có thể có trong một tháng 28, 29, 30, 31
Năm (year)
L Cho biết có phải là năm nhuận hay không Trả về 1 nếu năm nhuận, 0 nếu năm không nhuận
Y Có 4 ký tự đại diện cho một năm Ví dụ, 1999 hoặc 2003
y Có 2 ký tự đại diện cho một năm Ví dụ, 99 hoặc 03
Giờ (time)
a Viết thường giờ am hoặc pm am hoặc pm
A Viết hoa giờ AM hoặc PM AM hoặc PM
g Định dạng giờ 12 tiếng và không bắt đầu với 0 1, 2 đến 12
G Định dạng giờ 24 tiếng và không bắt đầu với 0 0, 1, 2 đến 23
h Định dạng giờ 12 tiếng và bắt đầu với 0 01, 02 đến 12
H Định dạng giờ 24 tiếng và bắt đầu với 0 00, 01, 02 đến 23
i Định dạng phút bắt đầu với 0 00, 01 đến 59
s Định dạng giây bắt đầu với 0 00, 01 đến 59
u Là microseconds. Hàm date() sẽ luôn ra 000000 vì không hỗ trợ microseconds. Lớp Datetime thì hỗ trợ microseconds. Ví dụ: 654321
v Là milliseconds. Tương tự như u với date() và Datetime Ví dụ: 654
Timezone
e Thể hiện múi giờ (timezone) Ví dụ: UTC, GMT, Atlantic/Azores
O Chênh lệch múi giờ với giờ GMT (+0) (không có : ở giữa giờ và phút) Ví dụ: +0200
P Chênh lệch múi giờ với giờ GMT (+0) (có : ở giữa giờ và phút) Ví dụ: +02:00
T Viết tắt múi giờ (nếu biết). Còn không thì lấy chênh lệch với giờ GMT (+0) Ví dụ: EST, MDT hoặc +05
Full date/time
c Định dạng thời gian theo tiêu chuẩn ISO 8601 Ví dụ: 2004-02-12T15:19:21+00:00
r Định dạng thời gian theo tiêu chuẩn RFC 2822 Ví dụ: Thu, 21 Dec 2000 16:01:07 +0200

3.2. Một số ví dụ về định dạng với hàm date()

$today1 = date("F j, Y, g:i a");//October 5, 2021, 6:29 am
$today2 = date("m.d.y");//10.05.21
$today3 = date("j, n, Y");//5, 10, 2021
$today4 = date("Ymd");//20211005
$today5 = date('h-i-s, j-m-y, it is w Day');//06-29-51, 5-10-21, 2931 2951 2 Tueam21
$today6 = date('\i\t \i\s \t\h\e jS \d\a\y.');//it is the 5th day.
$today7 = date("D M j G:i:s T Y");//Tue Oct 5 6:29:51 CEST 2021
$today8 = date('H:m:s \m \i\s\ \m\o\n\t\h');//06:10:51 m is month
$today9 = date("H:i:s");//06:29:51
$today10 = date("Y-m-d H:i:s");//2021-10-05 06:29:51
//date() có timestamp
$datetime = date('d-m-Y H:i:s', 1634614259);//19-10-2021 05:30:59

3.3. Hàm date() với default timezone

$datetime = date('d-m-Y H:i:s');//05-10-2021 06:37:16
//hoặc
date_default_timezone_set('Asia/Ho_Chi_Minh');
$datetime = date('d-m-Y H:i:s');//05-10-2021 11:37:16

Kết quả của hàm date() khi không thiết lặp timezone và khi thiết lặp timezone là khác nhau về giờ. Khi không thiết lặp timezone thì PHP sẽ lấy thời gian theo timezone mặc định được cấu hình trong file php.ini.

3.4. Thay đổi default timezone trong PHP

Nếu sử dụng XAMPP thì vào Config của Apache để cấu hình lại file php.ini.

Cấu hình file php.ini

Tìm date.timezone và thay đổi timezone theo những timezone được hỗ trợ List of Supported Timezones mà bạn muốn.

Đổi timezone trong file php.ini

Qua bài này, hy vọng các bạn sẽ hiểu rõ về date() trong PHP và tránh những bối rối khi sử dụng hàm này.

  • Lập trình giao tiếp màn hình LCD với board mạch Arduino
  • Phương thức tĩnh (static method) và thuộc tính tĩnh (static property) trong PHP
  • Tạo (create) và ghi (write) file trong PHP
  • Thuật toán sắp xếp chèn trực tiếp (Insertion Sort)
  • Kiểm tra (validation) dữ liệu trong html form với PHP

Tải thêm tài liệu liên quan đến bài viết Hướng dẫn dùng parseexact datetime trong PHP