Categories PHP-MySQL

Hàm Ngày tháng và Thời gian trong PHP

Hàm date() trong PHP được sử dụng để định dạng ngày và thời gian.

Hàm Date()

Hàm date() được dùng để định dạng một nhãn thời gian giúp cho việc đọc dữ liệu ngày và thời gian trở nên đơn giản hơn. Cú pháp:

date(format,timestamp)
Tham số Mô tả
Định dạng (format) Yêu cầu. Chỉ định định dạng của nhãn thời gian
Nhãn thời gian (timestamp) Tùy chọn. Chỉ định một nhãn thời gian cụ thể. Theo mặc định là ngày và thời gian hiện tại

Một nhãn thời gian là một chuỗi các ký tự, biểu thị ngày tháng và / hoặc thời gian mà tại đó một sự kiện nào đó xảy ra.


Cách đơn giản để lấy một ngày

Các tham số định dạng của hàm date() xác định cách làm thế nào để định dạng ngày (hoặc thời gian).

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

  • d – Đại diện cho ngày của tháng (01 tới 31)
  • m – Đại diện cho một tháng (01 tới 12)
  • Y – Đại diện cho một năm (trong bốn chữ số)
  • l (dạng viết thường của L) – Đại diện cho các ngày trong tuần

Các yếu tố khác như ” /”, ” . ” hoặc ” – ” cũng có thể được chèn vào giữa các yếu tố để thêm định dạng bổ sung.

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

<?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");
?>

Mẹo PHP – Tự động lấy năm bản quyền dùng cho website

Bạn sử dụng hàm date() để tự động cập nhật bản quyền năm trên website của bạn (thường nằm ở chân trang):

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

Cách đơn giản để lấy thời gian

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

  • h – định dạng 12h (với số 0 đứng đằng trước) từ 01 đến 12
  • i – định dạng phút (với số 0 đứng đằng trước) từ 00 đến 59
  • s – định dạng giây (với số 0 đứng đằng trước) từ 00 đến 59
  • a – dạng viết thường của am hoặc pm

Ví dụ dưới đây cung cấp thời gian hiện tại trong định dạng cụ thể:

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

Chú ý: hàm date() trong PHP sẽ lấy thời gian/ngày tháng của server!


Lấy múi giờ của bạn

Nếu thời gian bạn nhận được từ mã không phải là thời gian chính xác, nguyên nhân có thể nằm ở lý do máy chủ của bạn là ở nước khác hoặc được thiết lập cho múi giờ khác.

Vì vậy, nếu bạn cần thiết lập thời gian theo một địa điểm cụ thể, bạn có thể thiết đặt một múi giờ nhất định.Ví dụ dưới đây đặt múi giờ “America / New_York”, sau đó cung cấp kết quả đầu ra thời gian hiện tại trong các định dạng cụ thể :

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

Tạo ngày với hàm mktime() trong PHP

Các tham số tùy chọn thời gian trong hàm date() xác định một dấu thời gian. Nếu bạn không chỉ định một dấu thời gian, ngày và thời gian hiện tại sẽ được sử dụng (như trong ví dụ trên).

Các hàm mktime() trả về nhãn thời gian cho một ngày. Các nhãn Unix chứa số giây giữa Unix Epoch (ngày 01 Tháng 1 1970 00:00:00 GMT) và thời gian quy định.

Cú pháp:

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

Ví dụ dưới đây tạo một ngày và thời gian từ thông số trong hàm mktime():

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

Tạo ngày tháng từ chuỗi với hàm strtotime() trong PHP

Hàm PHP strtotime() được sử dụng để chuyển dạng ngày tháng dễ đọc cho con người sang dạng thời gian Unix

Cú pháp:

strtotime(time,now)

Ví dụ dưới đây tạo ngày và thời gian từ hàm strtotime():

<?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 về việc chuyển đổi một chuỗi sang một ngày, vì vậy bạn có thể đưa vào các giá trị khác nhau:

<?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, hàm strtotime() không hoàn hảo, do vậy hãy nhớ kiểm tra chuỗi mà bạn đưa vào.

Nhiều ví dụ khác về hàm ngày tháng

Ví dụ dưới đây đưa ra các ngày vào ngày thứ 7 trong vòng 6 tuần:

<?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ụ bên dưới cung cấp số ngày còn lại cho đến ngày mùng 4 tháng 7:

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

Comments are closed.

Back to Top