PHP Cơ bản
PHP Nâng cao
PHP & Cơ sở dữ liệu MySQL
Ví dụ PHP
Tài liệu tham khảo PHP
Quảng cáo

Ngày và giờ trong PHP

Trong hướng dẫn này, bạn sẽ học được cách trích xuất hoặc định dạng ngày và giờ trong PHP.

Hàm Date() PHP

Hàm PHP date() chuyển đổi timestamp thành ngày và giờ dễ đọc hơn.

Máy tính lưu trữ ngày và giờ ở định dạng được gọi là UNIX Timestamp, đo thời gian dưới dạng số giây kể từ đầu kỷ nguyên Unix (Giờ trung bình nửa đêm của Greenwich vào ngày 1 tháng 1 năm 1970 tức là ngày 1 tháng 1 năm 1970 00:00:00 GMT) .

Vì đây là một định dạng không dễ cho con người đọc, PHP chuyển đổi một timestamp thành một định dạng mà con người có thể đọc được và ngày tháng từ ký hiệu của bạn thành một timestamp mà máy tính hiểu được. Cú pháp của hàm PHP date() có thể được cung cấp với.

date(format, timestamp)

Tham số format trong hàm date() là yêu cầu mà chỉ định định dạng ngày tháng và thời gian muốn chuyển đổi. Tuy nhiên, timestamp là một tham số tùy chọn, nếu không được đưa vào thì ngày và giờ hiện tại sẽ được sử dụng. Câu lệnh sau hiển thị ngày hôm nay:

Ví dụ

<?php
$today = date("d/m/Y");
echo $today;
?>
 

Ghi chú: Hàm PHP date() trả về ngày và giờ hiện tại theo đồng hồ tích hợp của máy chủ web mà tập lệnh đã được thực thi.

Định dạng Ngày và Giờ bằng PHP

Tham số format của hàm date() trên thực tế là một chuỗi có thể chứa nhiều ký tự cho phép bạn tạo chuỗi ngày chứa các thành phần khác nhau của ngày và giờ, như ngày trong tuần, AM (sáng) hoặc PM (chiều), v.v. Dưới đây là một số các ký tự liên quan đến định dạng ngày tháng thường được sử dụng:

  • d - Ngày đại diện trong tháng; hai chữ số với các số 0 ở đầu (01 hoặc 31)
  • D - Thể hiện ngày trong tuần dưới dạng chữ viết tắt (Mon to Sun - Thứ Hai đến Chủ Nhật)
  • m - Biểu thị tháng bằng số với các số 0 ở đầu (01 hoặc 12)
  • M - Thể hiện tháng bằng văn bản, viết tắt (Jan to Dec - Tháng 1 đến Tháng 12)
  • y - Thể hiện năm bằng hai chữ số (08 hoặc 14)
  • Y - Năm đại diện bằng bốn chữ số (2008 hoặc 2021)

Các phần của một định dạng ngày tháng có thể được phân tách bằng cách chèn các ký tự khác, như dấu gạch ngang (-), dấu chấm (.), dấu gạch chéo (/) hoặc dấu cách để thêm định dạng trực quan bổ sung.

Ví dụ

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

Mẹo: Bạn có thể sử dụng hàm PHP date() để tự động cập nhật thời hạn bản quyền trên trang web của mình, như: Copyright © 2013-.

Tương tự, bạn có thể sử dụng các ký tự sau để định dạng chuỗi thời gian:

  • h - Biểu thị giờ ở định dạng 12 giờ với các số 0 ở đầu (01 đến 12)
  • H - Biểu diễn giờ ở định dạng 24 giờ với các số 0 ở đầu (00 đến 23)
  • i - Biểu diễn phút với các số 0 ở đầu (00 đến 59)
  • s - Biểu thị giây với các số 0 ở đầu (00 đến 59)
  • a - Biểu diễn thời gian sáng, chiều dưới dạng chữ thường (am or pm - sáng hoặc chiều)
  • A - Biểu diễn thời gian sáng, chiều dưới dạng chữ in hoa (AM hoặc PM)

Mã PHP trong ví dụ sau hiển thị ngày ở các định dạng khác nhau:

Ví dụ

<?php
echo date("h:i:s") . "<br>";
echo date("F d, Y h:i:s A") . "<br>";
echo date("h:i a");
?>

Hàm PHP time()

Hàm time() được sử dụng để có được thời gian hiện tại như một Unix timestamp (số giây kể từ khi bắt đầu kỷ nguyên Unix: 01 Tháng 1 1970 00:00:00 GMT).

Ví dụ

<?php
// Executed at May 21, 2021 07:01:36
$timestamp = time();
echo($timestamp); // Kết quả: 1621569696
?>

Chúng ta có thể chuyển đổi timestamp này thành một ngày mà con người có thể đọc được thông qua việc chuyển nó đến hàm đã giới thiệu trước đó: Hàm date().

Ví dụ

<?php
$timestamp = 1621569696;
echo(date("F d, Y h:i:s", $timestamp)); // Kết quả: May 21, 2021 07:01:36
?>

Hàm PHP mktime()

Hàm mktime() được sử dụng để tạo ra các timestamp dựa trên một ngày và thời gian cụ thể. Nếu không có ngày và giờ nào được cung cấp, timestamp cho ngày và giờ hiện tại sẽ được sử dụng.

Cú pháp của hàm mktime() như sau:

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

Ví dụ sau hiển thị timestamp tương ứng với May 10, 2021 03:20:12:

Ví dụ

<?php
// Tạo timestamp cho một ngày cụ thể
echo mktime(15, 20, 12, 5, 10, 2021);
?>
 

Ghi chú: Bạn có thể bỏ đi bao nhiêu đối số tùy thích và giá trị tương ứng với thời gian hiện tại sẽ được sử dụng thay thế. Nếu bạn bỏ qua tất cả các đối số, hàm mktime() sẽ trả về  UNIX timestamp tương ứng với ngày và giờ hiện tại, giống như time().

Hàm mktime() có thể được sử dụng để tìm tên các ngày trong tuần tương ứng với một ngày cụ thể. Để làm điều này, chỉ cần sử dụng ký tự 'l' ('L' viết thường) với timestamp của bạn, như trong ví dụ sau, hiển thị ngày rơi vào ngày 1 tháng 4 năm 2021:

Ví dụ

<?php
// Tìm thứ của ngày cụ thể
echo date('l', mktime(0, 0, 0, 4, 1, 2021));
// Kết quả: Thursday
?>

Hàm mktime() cũng có thể được sử dụng để tìm một ngày cụ thể trong tương lai sau một khoảng thời gian cụ thể. Như trong ví dụ sau, hiển thị ngày rơi vào sau 30 tháng kể từ ngày hiện tại?

Ví dụ

<?php
// Ngày hiện tại May 21, 2021
$futureDate = mktime(0, 0, 0, date("m")+30, date("d"), date("Y"));
echo date("d/m/Y", $futureDate);
// Kết quả: 21/11/2023
?>

Tham khảo thêm về các hàm ngày, giờ trong PHP

Vui lòng xem phần tham khảo Hàm ngày / giờ trong PHP để biết danh sách đầy đủ tất cả các hàm ngày và giờ hữu ích có sẵn trong PHP.

Bài viết này đã giúp ích cho bạn?

Advertisements