By GokiSoft.Com| 23:59 02/12/2020|
Tài Liệu PHP

PHP Date and Time


Hàm date() được dùng để format date và time.


PHP Date()

Hàm date() format định dạng timestamp (Gồm cả date và time) thành định dạng phù hợp và dễ xem hơn.

Cú pháp

date(format,timestamp)

ParameterMô tả
formatRequired (Bắt buộc điền). Chỉ định format cho timestamp
timestampOptional (Tùy chọn có hoặc không). Chỉ định một timestamp. Mặc định không điền sẽ là current datetime

Một timestamp là một chuỗi các ký tự, biểu thị ngày và thời gian.


Get Date

Tham số format của hàm date() chỉ định cách để format date (hoặc với time).

Dưới đây là một số ký tự thường được sử dụng cho ngày tháng:

  • d - ngày (01 -> 31)
  • m - tháng (01 -> 12)
  • Y - năm (4 chữ số)

Một số ký tự khác, như "/", ".", hoặc "-" cũng có thể được chèn vào giữa các ký tự để thêm định dạng bổ sung.

Ví dụ dưới đây định dạng ngày hôm nay theo ba cách khác nhau:

Ví dụ

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>


PHP Tip - Automatic Copyright Year

Sử dụng hàm date() để tự động cập nhật năm copyright trên trang web của bạn:

Ví dụ

&copy; 2010-<?php echo date("Y");?>



Get Time

Dưới đây là một số ký tự thường được sử dụng cho thời gian:

  • H - Định dạng giờ 24h (00 -> 23)
  • h - Định dạng giờ 12h (01 -> 12)
  • i - Phút (00 -> 59)
  • s - Giây (00 -> 59)

Ví dụ dưới đây xuất ra thời gian hiện tại ở định dạng được chỉ định:

Ví dụ

<?php
echo "The time is " . date("h:i:sa");
?>


Lưu ý hàm date() viết không thì sẽ trả về thời gian thực của hệ thống!


Get Time Zone

Nếu thời gian bạn lấy lại từ mã không chính xác, có thể là do máy chủ của bạn ở quốc gia khác hoặc được thiết lập cho múi giờ khác.

Vì vậy, nếu bạn cần thời gian chính xác theo một vị trí cụ thể, bạn có thể đặt múi giờ bạn muốn sử dụng.

Ví dụ bên dưới đặt múi giờ thành "America/New York", sau đó xuất ra thời gian hiện tại ở định dạng được chỉ định:

Ví dụ

<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>

Tạo Date với mktime()

Tham số optional timestamp trong hàm date() chỉ định một timestamp cụ thể. Nếu bỏ qua, ngày và giờ hiện tại sẽ được sử dụng (như trong các ví dụ ở trên).

Hàm mktime() trả về Unix timestamp cho một date (January 1 1970 00:00:00 GMT).

Cú pháp

mktime(hour, minute, second, month, day, year)


Ví dụ dười đây tạo một date và time với hàm date() từ một tập tham số trong hàm mktime():

Ví dụ

<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>


Tạo Date từ String với strtotime()

Hàm strtotime() được sử dụng để chuyển đổi một chuỗi ngày có thể đọc được của con người thành một Unix timestamp (số giây kể từ January 1 1970 00:00:00 GMT).

Cú pháp

strtotime(time, now)


Ví dụ dưới đây tạo date time từ hàm strtotime():

Ví dụ

<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>


PHP khá thông minh trong việc chuyển đổi một chuỗi thành một ngày, vì vậy bạn có thể đặt vào các giá trị khác nhau:

Ví dụ

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

Tuy nhiên, strtotime() không được hoàn hảo, vì vậy hãy nhớ kiểm tra các chuỗi bạn đặt ở đó.


Thêm các ví dụ về Date

Ví dụ dưới đây xuất ra các ngày trong sáu ngày thứ Bảy tiếp theo:

Ví dụ

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);

while ($startdate < $enddate) {
  echo date("M d", $startdate) . "<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>


Ví dụ dưới đây cho biết số ngày cho đến ngày 4 tháng 7:

Ví dụ

<?php
$d1=strtotime("July 04");
$d2=ceil(($d1-time())/60/60/24);
echo "There are " . $d2 ." days until 4th of July.";
?>