PHP – Date and Time

Hàm date() được sử dụng để định dạng date/time.

Hàm Date()

Hàm date() định dạng một timestamp thành date và time dễ đọc.

Cú pháp

date(format,timestamp)
  • format : Bắt buộc, định dạng của timestamp
  • timestamp : Tùy chọn, giá trị timestamp, mặc định là thời gian hiện tại.

Lấy ngày tháng

format trong hàm date() giúp chỉ định cách định dạng ngày (hay giờ).

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

  • d – Đại diện ngày của tháng (01 to 31)
  • m – Đại diện tháng (01 to 12)
  • Y – Đại diện năm (in four digits)
  • l – Đại diện thứ

Các ký tự khác, như “/”, “.” Hoặc “-” cũng có thể được sử dụng.

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

Tự động tạo năm trong Copyright

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

Lấy Time

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

  • h – Định dạng 12 giờ, định dạng với số 0 ở đầu (01 to 12)
  • i – Định dạng phút với số 0 (00 to 59)
  • s – Định giây với số 0 (00 to 59)
  • a – (am or pm)
<?php
echo "The time is " . date("h:i:sa");
?>

Time Zone

Nếu kết quả thời gian trả lại từ hàm không đúng, có thể do máy chủ khác múi giờ.

Vì vậy bạn cần set lại múi giờ để sử dụng.

Dưới đây là ví dụng set timezone thành “Asia/Ho_Chi_Minh” và hiển thị thời gian bằng hàm date().

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

Tạo ngày với mktime()

Trong hàm date() nếu không có timestamp (như những ví dụ trên), thì ngày giờ hiện tại được sử dụng.

Hàm mktime() trả về Unix timestamp của một ngày. Unix timestamp là số giây tính từ Unix Epoch (January 1 1970 00:00:00 GMT) tới thời gian chỉ định trong hàm.

Cú pháp

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

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 ngày từ string với strtotime()

Hàm strtotime() chuyển thời gian dạng string thành Unix time.

Cú pháp

strtotime(time,now)

Ví dụ

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

PHP hiểu được khá nhiều định dạng 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, bạn cần kiểm tra kết quả của strtotime() để tránh sai sót.

Các ví dụ khác về ngày giờ

Ví dụ lấy 6 ngày thứ 7 tiếp theo.

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

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

Tính số ngày giữa ngày hiện tại với ngày 4/7

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