Hàm Ngày() & Thời gian trong PHP: Làm cách nào để lấy Dấu thời gian hiện tại?

⚡ Tóm tắt thông minh

Hàm `date()` của PHP định dạng dấu thời gian thành ngày và giờ dễ đọc. Hướng dẫn này giải thích cú pháp ngày tháng, dấu thời gian Unix, cách liệt kê và thiết lập múi giờ, hàm `mktime` để tạo dấu thời gian, và tài liệu tham khảo đầy đủ về các ký tự định dạng thời gian, ngày, tháng và năm.

  • 📅 Chức năng của hàm date() là: Hàm date chuyển đổi dấu thời gian thành chuỗi định dạng bằng các ký tự như Y, m và d cho năm, tháng và ngày.
  • 🇧🇷 Dấu thời gian Unix: Dấu thời gian là số giây kể từ ngày 1 tháng 1 năm 1970 theo giờ GMT, và hàm time() trả về giá trị hiện tại.
  • 🌍 Múi giờ: date_default_timezone_set thay đổi múi giờ hiện hành, và DateTimeZone::listIdentifiers liệt kê tất cả các múi giờ được hỗ trợ.
  • 🔧 mktime: Hàm mktime tạo ra một dấu thời gian từ một giờ, phút, giây, tháng, ngày và năm cụ thể.
  • 🔤 Ký tự định dạng: Các chữ cái đơn lẻ điều khiển đầu ra, ví dụ: H cho định dạng giờ 24 giờ, l cho tên ngày trong tuần và F cho tên tháng.
  • 📐 Bảng tham khảo: Các bảng được nhóm lại liệt kê các ký tự định dạng thời gian, ngày, tháng và năm, kèm theo ví dụ có thể chạy được cho mỗi loại.
  • 🤖 Hỗ trợ AI: Các công cụ AI có thể tạo định dạng ngày tháng và mã chênh lệch, đồng thời giúp giải quyết các lỗi múi giờ gây nhầm lẫn.

Hàm date () trong PHP

Hàm date () trong PHP

Hàm `date` trong PHP là một hàm tích hợp sẵn giúp đơn giản hóa việc làm việc với kiểu dữ liệu ngày tháng. Hàm `date` trong PHP được sử dụng để định dạng ngày hoặc giờ thành định dạng dễ đọc. Nó có thể được sử dụng để hiển thị ngày xuất bản của một bài viết hoặc ghi lại thời điểm dữ liệu trong cơ sở dữ liệu được cập nhật lần cuối.

Cú pháp ngày tháng trong PHP & Ví dụ

Hàm `date()` trong PHP có cú pháp cơ bản như sau.

<?php
date(format,[timestamp]);
?>

ĐÂY,

  • “date(…)” là hàm trả về dấu thời gian hiện tại được định dạng như sau: PHP trên máy chủ.
  • “Định dạng” là định dạng chung mà chúng ta muốn đầu ra của mình có, ví dụ:
    • "Ymd" là định dạng ngày tháng trong PHP, có dạng YYYY-MM-DD.
    • “Y” để hiển thị năm hiện tại
  • “[timestamp]” là tùy chọn. Nếu không cung cấp dấu thời gian, PHP sẽ sử dụng ngày giờ hiện tại trên máy chủ.

Chúng ta hãy xem một ví dụ đơn giản hiển thị năm hiện tại.

<?php

echo date("Y");

?>

Đầu ra:

2026

Dấu thời gian là gì?

Trong PHP, dấu thời gian là một giá trị số tính bằng giây, nằm giữa thời điểm hiện tại và giá trị tại thời điểm 1.st Tháng 1 năm 1970, 00:00:00 Giờ chuẩn Greenwich (GMT).

Giá trị được hàm thời gian trả về phụ thuộc vào múi giờ mặc định.

Múi giờ mặc định được thiết lập trong tệp php.ini. Nó cũng có thể được thiết lập bằng lập trình bằng cách sử dụng hàm date_default_timezone_set.

Đoạn mã dưới đây hiển thị dấu thời gian hiện tại.

<?php

echo time();

?>

Giả sử bạn đã lưu tệp timestamp.php trong thư mục phptuts, hãy truy cập vào đường dẫn sau: URL http://localhost/phptuts/timestamp.php

Nhãn thời gian

Lưu ý: giá trị của dấu thời gian không phải là hằng số. Nó thay đổi mỗi giây.

Lấy danh sách các số nhận dạng múi giờ có sẵn

Trước khi xem cách thiết lập múi giờ mặc định bằng lập trình, chúng ta hãy xem cách lấy danh sách các múi giờ được hỗ trợ.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

ĐÂY,

  • Câu lệnh “$timezone_identifiers = DateTimeZone::listIdentifiers();” gọi phương thức tĩnh listIdentifiers của lớp tích hợp sẵn DateTimeZone. Phương thức listIdentifiers trả về một danh sách các mã định danh được gán cho biến $timezone_identifiers.
  • “foreach{…}” lặp qua mảng và in ra các giá trị.

Giả sử bạn đã lưu tệp list_time_zones.php trong thư mục phptuts, hãy truy cập vào đường dẫn sau: URL http://localhost/phptuts/list_time_zones.php

Mã định danh múi giờ

PHP đặt múi giờ theo lập trình

Hàm date_default_timezone_set cho phép bạn đặt múi giờ mặc định từ tập lệnh PHP.

Múi giờ đã thiết lập sau đó sẽ được sử dụng cho tất cả các ngày. Các hàm PHP trong các đoạn mã của bạn. Nó có cú pháp như sau.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

ĐÂY,

  • “date_default_timezone_set()” là hàm đặt múi giờ mặc định
  • “chuỗi $timezone_identifier” là mã định danh múi giờ

Đoạn mã bên dưới hiển thị thời gian theo múi giờ mặc định được thiết lập trong php.ini. Sau đó, nó thay đổi múi giờ mặc định thành Asia/Calcutta và hiển thị thời gian lại.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Giả sử bạn đã lưu tệp set_time_zone.php trong thư mục phptuts, hãy truy cập vào đường dẫn sau: URL http://localhost/phptuts/set_time_zone.php

PHP đặt múi giờ theo lập trình

Hàm PHP Mktime

Hàm mktime trả về dấu thời gian trong một Unix định dạng.

Cú pháp của nó như sau.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

ĐÂY,

  • “mktime(…)” là hàm tạo dấu thời gian của PHP
  • "Giờ" là từ tùy chọn; nó chỉ số giờ.
  • "Phút" là từ tùy chọn; đó là số phút.
  • "Giây" là từ tùy chọn; đó là số giây.
  • "Tháng" là tùy chọn; đó là số thứ tự của tháng.
  • "Ngày" là tùy chọn; đó là số thứ tự của ngày.
  • "Năm" là tùy chọn; đó là số thứ tự của năm.
  • Tham số “is_dst” là tùy chọn; nó được sử dụng để xác định giờ tiết kiệm ánh sáng ban ngày (DST). Giá trị 1 là giờ DST, 0 nếu không phải, và -1 nếu không xác định được.

Bây giờ chúng ta hãy xem một ví dụ tạo dấu thời gian cho ngày 13/10/2025 bằng cách sử dụng hàm mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

ĐÂY,

  • “0,0,0” lần lượt là giờ, phút và giây.
  • “10” là tháng trong năm
  • “13” là ngày trong tháng
  • “2025” là năm

Đầu ra:

1760328000

Tham chiếu định dạng ngày tháng PHP

Các bảng bên dưới hiển thị các ký tự định dạng thông dụng được sử dụng khi làm việc với các hàm ngày tháng trong PHP.

thông số thời gian

Tham số Mô tả Chi tiết Ví dụ
"R" Trả về ngày và giờ đầy đủ
<?php
echo date("r");
?>
“a”, “A” Trả về thời gian hiện tại lần lượt là sáng hay chiều, AM hay PM
<?php
echo date("a");
echo date("A");
?>
“g”, “G” Trả về giờ không có số 1 đứng đầu [12 đến 0], [23 đến XNUMX] tương ứng
<?php
echo date("g");
echo date("G");
?>
“h”, “H” Trả về giờ với các số 0 đứng đầu tương ứng [01 đến 12], [00 đến 23].
<?php
echo date("h");
echo date("H");
?>
"là" Trả về số phút/giây có số 00 đứng đầu [59 đến XNUMX]
<?php
echo date("i");
echo date("s");
?>

Thông số ngày

Tham số Mô tả Chi tiết Ví dụ
“D” Trả về ngày trong tháng có số 01 đứng đầu [31 đến XNUMX]
<?php
echo date("d");
?>
"J" Trả về ngày trong tháng không có số 1 đứng đầu [31 đến XNUMX]
<?php
echo date("j");
?>
"D" Trả về 3 chữ cái đầu tiên của tên ngày [Chủ Nhật đến Thứ Bảy]
<?php
echo date("D");
?>
"L" Trả về tên ngày trong tuần [Chủ nhật đến thứ bảy]
<?php
echo date("l");
?>
“W” Trả về ngày trong tuần mà không có số 0 đứng đầu [0 đến 6]; Chủ nhật được biểu thị bằng số 0, cho đến thứ Bảy được biểu thị bằng số 6.
<?php
echo date("w");
?>
"Z" Trả về ngày trong năm không có khoảng trắng ở đầu [0 đến 365]
<?php
echo date("z");
?>

Thông số tháng

Tham số Mô tả Chi tiết Ví dụ
"M" Trả về số tháng có số 01 đứng đầu [12 đến XNUMX]
<?php
echo date("m");
?>
“N” Trả về số tháng không có số 1 đứng đầu [12 đến XNUMX]
<?php
echo date("n");
?>
"M" Trả về 3 chữ cái đầu tiên của tên tháng [Jan to Dec]
<?php
echo date("M");
?>
"F" Trả về tên tháng [Tháng Một đến Tháng Mười Hai]
<?php
echo date("F");
?>
"T" Trả về số ngày trong một tháng [28 đến 31]
<?php
echo date("t");
?>

Thông số năm

Tham số Mô tả Chi tiết Ví dụ
"L" Trả về 1 nếu đó là năm nhuận và 0 nếu không phải là năm nhuận.
<?php
echo date("L");
?>
"Y" Trả về định dạng năm bốn chữ số
<?php
echo date("Y");
?>
"Y" Trả về định dạng năm gồm hai chữ số (00 đến 99)
<?php
echo date("y");
?>

Câu Hỏi Thường Gặp

Hàm `date()` là một hàm thủ tục đơn giản dùng để định dạng dấu thời gian. Lớp `DateTime` hướng đối tượng và hỗ trợ các phép toán số học, so sánh, múi giờ và tính bất biến, do đó phù hợp hơn cho logic ngày tháng phức tạp trong các ứng dụng lớn hơn.

Hãy sử dụng hàm strtotime(), hàm này đọc được các định dạng như '2025-10-13' hoặc 'next'. Mondayvà trả về dấu thời gian Unix. Để phân tích cú pháp chính xác một định dạng đã biết, DateTime::createFromFormat an toàn hơn vì nó báo lỗi rõ ràng khi nhập dữ liệu không hợp lệ.

Tạo hai đối tượng DateTime và gọi hàm diff(), hàm này sẽ trả về một DateInterval. Sau đó, bạn có thể đọc số ngày, tháng hoặc năm, ví dụ: $start->diff($end)->days để lấy tổng số ngày giữa hai ngày.

Có. Hãy mô tả định dạng đầu vào và đầu ra, và AI có thể tạo ra mã date(), DateTime hoặc strtotime, bao gồm cả việc thêm khoảng thời gian hoặc chuyển đổi múi giờ. Hãy thử nghiệm với các trường hợp đặc biệt như năm nhuận và cuối tháng.

Đúng vậy. AI có thể phát hiện lỗi thiếu lệnh date_default_timezone_set, sự không khớp giữa múi giờ máy chủ và múi giờ hiển thị, hoặc các vấn đề về giờ tiết kiệm ánh sáng ban ngày, sau đó đề xuất sử dụng DateTime với múi giờ được chỉ định để làm cho hành vi trở nên dễ dự đoán hơn.

Tóm tắt bài viết này với: