Date & time - PHP

Date là một phần trong cuộc sống thường ngày và nó trở nên dễ dàng để làm việc với chúng mà không phải suy nghĩ. PHP cũng cung cấp các công cụ mạnh mẽ để thao tác date dễ dàng hơn.

Ngày và giờ trong PHP

Hàm Date() trong PHP

Hàm PHP date()  sẽ 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, đó. là 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ễ đọc, nên 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:

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 và 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 bên dưới hiển thị ngày hôm nay:

 

<?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ờ

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 những 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),...

Sau đâ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 nhau, như dấu gạch ngang (-), dấu chấm (.), dấu gạch chéo (/) hay 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 gian bản quyền trên trang web của mình, như: Copyright © 2024-.

Tương tự, bạn cũng 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)
  • s - Biểu thị giây với các số 0 ở đầu (00 đến 59)
  • i - Biểu diễn phút 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ã 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 time() trong PHP

Hàm time() sử dụng để có được thời gian hiện tại như 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
?>

Bạn 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 mktime()

Hàm mktime() 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 truyền vào, timestamp sẽ lấy ngày và giờ hiện tại để sử dụng.

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

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

Ví dụ dưới sẽ 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ú: Chúng ta 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ụ dưới, 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ể 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ể. Với 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
?>

 

 

Bài viết mới cập nhật