BÀI 18: NGÀY (DATE) VÀ GIỜ (TIME) TRONG PHP

Table of contents

Định dạng ngày tháng với hàm date()Phương pháp cách xử lý ngày tháng nâng cấp trong PHPMột số hàm lấy tin tức date/time khácHàm strtotime() cách xử trí ngày tháng trong PHPPhép toán cùng với hàm strtotime

Ở nội dung bài viết trước sẽ học qua về cách xử lý đối với file trong PHP, thường xuyên series học tập PHP căn bản, bài này họ sẽ tìm hiểu về phương thức xử lý tháng ngày (date) trong PHP nhé!

Vấn đề xử lý ngày tháng cực kỳ quan trọng khi bạn xử lý cùng với các nội dung bài viết và đăng tải website. Ví dụ bạn cần in ra tháng ngày đăng bài viết hiển thị theo kiểu ngày / tháng / năm hoặc ngày – tháng -năm thì yêu cầu bạn phải ghi nhận cách sử dụng các hàm cách xử trí ngày tháng trong PHP thì mới làm được.

Bạn đang xem: Bài 18: ngày (date) và giờ (time) trong php


*

Xử lý date time ngày tháng trong PHP


Không gần như thế nó còn tồn tại liên quan đặc biệt đến cấu tạo cơ sở tài liệu database nữa đề xuất tầm quan trọng đặc biệt của vấn đề xử lý thời hạn này là không thể nhỏ.

Thiết lập múi thời gian (timezone) trên Việt Nam

Để cấu hình và làm việc với thời gian datetime đúng theo giờ nước ta thì cần ban phải tùy chỉnh thiết lập time zone( múi giờ) mang đến nó.

Cú pháp để tùy chỉnh thiết lập time zone là: date_default_timezone_set(‘timezone_identifier’);

Trong đó timezone_identifier là time zone mà bạn có nhu cầu thiết lập.

Mình đã ở Châu Á cùng ở nước ta – hcm nên sẽ có timezone là Asia/Ho_Chi_Minh, mỗi khoanh vùng sẽ chênh lệch nhau thời hạn nên chúng ta phải chăm chú khi trang web có tương quan đến nước ngoài.

date_default_timezone_set("Asia/Ho_Chi_Minh");Về múi giờ chúng ta có thể đọc thêm tại: http://php.net/manual/en/timezones.php

Hoặc các chúng ta cũng có thể sử dụng đoạn code tiếp sau đây để xuất ra màn hình danh sách tất cả các timezone:

";}?>Hoặc ta cũng rất có thể sử dụng hàm timezone_abbreviations_list nhằm xuất ra timezone theo code mặt dưới.

"; } }}?>
Lưu ý: Hàm tùy chỉnh cấu hình timezine này chúng ta nên đặt tại đầu trang để cách đoạn code bên dưới hoạt hễ được tác dụng và trính vị lỗi nhé!

Định dạng tháng ngày với hàm date()

Hàm date cần sử dụng để biến hóa thời gian theo format nhưng mà lập trình viên chỉ định ao ước muốn.

Cú pháp: date(format, timestamp);

Trong đó:

format: format ngày tháng năm, tiếng phút giây.timestamp(không bắt buộc) khoác định là hàm time() (chính là thời hạn hiện tại).

Danh sách các format format của date()

h: Trả về giờ trong thời gian ngày kiểu 12h.H: Trả về giờ trong thời gian ngày kiểu 24h.i: Trả về phút trong giờ.s: Trả về số giây vào phút.S: Trả về hậu tố giờ Anh cho ngày trong tháng, 2 ký tự. (st, nd, rd, th)d: trả về ngày vào tháng(bằng số từ 1- đến31).t: Số ngày trong 1 tháng (28 -> 31)j: Trả về ngày vào tháng, tuy vậy nếu ngàyD: Trả về định hình thứ trong tuần bởi tiếng anh viết tắt. (có 3 chữ cái)l: Trả về tương đối đầy đủ thứ vào tuần (tiếng anh).m: Trả về tháng trong thời điểm (bằng số từ là một đến 12).M: Trả về tháng trong thời gian nhưng bởi tiếng anh viết tắt.y: Trả về 2 số ở đầu cuối của năm.Y: trả về không thiếu 4 số của năm.c: trả về thời gian kiểu ISO 8601, hay được sử dụng tạo đến thẻ meta publish time vào SEOz: trả về số ngày trong những năm (Ngày trong năm bắt đầu từ 0 -> 365)

Ngoài ra các bạn có thể xem cụ thể đầy đủ về các format khác tại đây

Truyền thêm chuỗi vào hàm date()

Để cho câu chữ chuỗi cơ mà các bạn có nhu cầu hiển thị được như ý muốn thì các bạn thêm dấu chéo ngược vào trước mỗi ký kết tự của chuỗi.

Phương pháp xử trí ngày tháng cải thiện trong PHP

Kiểu format ngày tháng chuẩn chỉnh trong MySQL

Để giữ đúng format ngày tháng trong MySQL thì bạn thực hiện format mặt dưới.

Xem thêm: khi người yêu ở xa bị ốm

date("Y-m-d H:i:s");Đây là định dạng chuẩn chỉnh để bạn có thể sử dụng để đăng bài cũng giống như upload hay bình luận một nội dung nào này mà có lưu lên database.

Chuyển đổi hình dáng định dạng ngày tháng

Ngoài biện pháp đổi hình dáng định dạng trực tiếp vào hàm date() thì ta gồm có một cách chuyển đổi kiểu định hình xuất ra tháng ngày khác đó là hàm date_format()

Cộng trừ tháng ngày với mktime()

Hàm mktime() sẽ đo lường và tính toán đưa ra ngày đúng mực bởi các tham số truyền vào.

mktime($hour, $minute, $second, $month, $day , $year);
Lưu ý: Hàm này đang trả về thời gian kiểu INT nên các bạn phải áp dụng hàm date() để chuyển đổi ra định dạng hy vọng muốn.

Các bạn để ý từ 2 ví dụ như trên, nếu khách hàng công thời gian có tác dụng quá 24, hoặc cộng số ngày có công dụng vượt qua số ngày hồi tháng đó thì giờ hoặc ngày hoặc mon sẽ auto tăng thêm 1. Tương tự đối với năm cũng vậy. Chính vì thế khi thực hiện công trừ so với thời gian các bạn hãy kiểm tra cảnh giác để không biến thành sai lệch nhé!

";//Xuất ra ngày này tháng sau$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));echo date("d/m/Y", $lastmonth) . "";//xuất ra ngày nay năm sau$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);echo date("d/m/Y", $nextyear) . "";?>

Thay đổi ngày tháng date_modify()

Hàm date_modify() góp ta biến đổi ngày tháng hiện nay hành. Đây cũng là một phương pháp dùng để đo lường công trừ cho một ngày tháng chúng ta nhé!


Như vậy ta hoàn toàn có thể sử dụng hàm date_modify() với hàm mktime() để tính ngày tháng đa số được cả. Nhưng đối với mình lại hay hay dùng hàm mktime nhằm tính hơn.

Hàm getdate() để giúp ta biến hóa dữ liệu ngày tháng về dạng mảng trong PHP với ta rất có thể xuất ra màn hình hiển thị theo cách thức sau

int 16 "minutes" => int 3 "hours" => int 4 "mday" => int 23 "wday" => int 0 "mon" => int 2 "year" => int 2020 "yday" => int 53 "weekday" => string "Sunday" (length=6) "month" => string "February" (length=8) 0 => int 1582430596*/?>

KhóaGiá trịví dụ
“seconds”số giây0 đến 59
“minutes”số phút0 đến 59
“hours”số giờ0 đến 23
“mday”Ngày vào tháng1 đến 31
“wday”Ngày trong tuần0 (Sunday) đến 6 (Saturday)
“mon”Tháng1 đến 12
“year”Năm1999
“yday”Ngày của năm0 đến 365
“weekday”Ngày trong tuần(dạng chữ)Sunday đến Saturday
“month”Tháng(dạng chữ)January đến December
0time()timestamp,-2147483648 đến 2147483647.

Một số hàm lấy thông tin date/time khác

Lấy ngày cuối cùng của tháng//last day of monthfunction lastday($month = "", $year = "") if (empty($month)) $month = date("m"); if (empty($year)) $year = date("Y"); $result = strtotime("$year-$month-01"); $result = strtotime("-1 second", strtotime("+1 month", $result)); return date("Y-m-d", $result);echo lastday("6","2020");Ở hàm trên các bạn sẽ thấy vào code gồm tạo 2 thay đổi $year cùng $month. Đầu tiên sẽ chất vấn nếu ko tất cả 2 thông số kỹ thuật truyền vào phù hợp thì hàm đang tự đông đem năm và tháng thông qua thời gian của hiện nay tại. Kế tiếp ta vẫn gán vươn lên là $result bởi ngày trước tiên của tháng trong thời điểm hiện tại. Liên tục ta gán đè trở nên $result thêm 1 lần nữa như sau:

ở lệnh strtotime(‘-1 second’, strtotime(‘+1 month’, $result)); ta thấy hàm strtotime được lồng bên trong sẽ tính bằng phương pháp lấy năm hiện nay tại, còn tháng lúc này thì cộng thêm 1 với thời hạn là 0h0m0s. Khi ấy ta có thời gian là năm hiện tại tại, tháng tiếp theo của tháng bây giờ và ngày trước tiên của tháng đó.

Tiếp theo đi chỉ thị strtotime bên ngoài thời hạn sẽ bị trừ đi 1s, tức là khi này tự 0h của ngày đầu tiên của tháng tiếp theo đó sẽ bị trừ còn 23h59m59s của cách nay đã lâu đó. Từ khắc thời hạn sẽ bị lùi về 1 ngày cũng giống như lùi về 1 tháng. Như vậy công dụng xuất ra màn hình sẽ là ngày ở đầu cuối của tháng hiện tại.

Lấy ngày thứ nhất của mon chỉ định.

//first day of monthfunction firstDay($month = "", $year = "") if (empty($month)) $month = date("m"); if (empty($year)) $year = date("Y"); $result = strtotime("$year-$month-01"); return date("Y-m-d", $result);echo lastday("6","2020");Ở hàm trên các bạn sẽ thấy vào code gồm tạo 2 biến hóa $year cùng $month. Đầu tiên sẽ khám nghiệm nếu ko có 2 thông số truyền vào cân xứng thì hàm đã tự đông mang năm cùng tháng thông qua thời hạn của hiện tại. Sau đó ta sẽ gán biến $result bởi ngày trước tiên của tháng trong năm hiện tại. Rồi ta xuất ra trong format của hàm date()

Các bạn hãy tham khảo về hàm strtotime() sống mục bên dưới để gọi hơn nhé.

Hàm strtotime() cách xử trí ngày mon trong PHP

Hàm này giúp tạo nên một kiểu dáng định dạng thời gian theo đẳng cấp INT xuất phát từ một chuỗi.

Trường đúng theo này được sử dụng thỉnh thoảng lấy dữ liệu từ MySQL với định hình là datetime.

cú pháp: strtotime($time)

Phép toán với hàm strtotimeBắt đầu từ thời gian nào đó trong thừa khứ hoặc tương lai.

Cộng 1 tháng tính từ thời điểm hiện tại.Cộng gộp 2 thời gian khác nhauÁp dụng từ các việc công trừ ngày hoặc mon từ 2 lấy ví dụ như trên, ta rất có thể sử dụng phương pháp đó để cộng dồn 2 thời gian khác nhau lại với nhau theo hàm mặt dưới.

Hàm strtotime này hoàn toàn có thể sau này mình đã viết một bài riêng để nói siêng về nó sau bởi vì hàm này được dùng để đo lường và tính toán và ứng dụng rất nhiều.

So sánh sự chệnh lệch thân 2 ngày

trong trường hợp so sánh độ chênh lệch của 2 ngày ta sử dụng hàm diff().

$date1->diff($date2);

diff($t2);var_dump($ss); /*object(DateInterval)<3> public "y" => int 0 public "m" => int 0 public "d" => int 1 public "h" => int 1 public "i" => int 1 public "s" => int 50 public "f" => float 0 public "weekday" => int 0 public "weekday_behavior" => int 0 public "first_last_day_of" => int 0 public "invert" => int 0 public "days" => int 1 public "special_type" => int 0 public "special_amount" => int 0 public "have_weekday_relative" => int 0 public "have_special_relative" => int 0*///từ kết quả var_dump bên trên ta thấy độ chênh lệch là 1 trong những ngày 1h 1 phút cùng 50 giây?>

Kiểm tra tính hòa hợp lệ của ngày tháng.

Để kiểm tra tính thích hợp lệ về định dạng cho ngày tháng ta dùng hàm checkdate. Kết quả đúng đã trả về true, sai đã trả về false

Cú pháp: checkdate($mouth, $day, $year);

Kết thúc

Qua bài viết trên mình đã liệu kê một vài phương pháp, một số trong những hàm quan trọng để xử lý thời hạn date/time vào PHP.

Tuỳ vào mỗi trường hợp và tính dễ dàng của vấn đề mà ta sẽ đề xuất áp dụng những hàm giám sát ngày thang dạng cải thiện nói bên trên theo cách cân xứng nhất. Vụ việc này các bạn cần có tác dụng nhiều bài bác tập thì sẽ tự lựa chọn tương xứng được.

Mỗi bài viết về kiến thức và kỹ năng học PHP của mình đều có thể chưa hoàn toàn đầy đủ, cho nên mong chúng ta hãy tra google khi tìm hiểu thêm và mong chúng ta cũng có thể gửi lại comment bổ sung bên dưới để mình có thể hoàn thiện lại bài viết hơn. Cảm ơn các bạn!