Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Bài 20: Xử lý ngày tháng trong PHP

-Ở bài trước chúng ta đã tìm hiểu về các hàm xử lý dữ liệu trong PHP rồi, bài này chúng ta tiếp tục với các hàm xử lý ngày tháng trong PHP.

1, Thiết lập thời gian ở Việt Nam.

-Đầu tiên để làm việc với datetime trong PHP được chính xác thì bạn cần phải thiết lập múi giờ cho nó bằng hàm date_default_timezone_set()

Cú pháp:

date_default_timezone_set(timezone_identifier)

-Trong đó: timezone_identifier là tên timezone các bạn muốn xét.

VD: Xét timezone của Việt Nam

date_default_timezone_set('Asia/Ho_Chi_Minh');

=>chú ý: Phải để hàm này ở đầu file để các đoạn code phía sau hoạt động được chính xác.

-Và để xem danh sách các timezone mà PHP hỗ trợ thì các bạn sử dụng đoạn code sau:

<?php
foreach (timezone_abbreviations_list() as $abbr => $timezone) {
    foreach ($timezone as $val) {
        if (isset($val['timezone_id'])) {
            var_dump($abbr, $val['timezone_id']);
        }
    }
}
?>

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

-Hàm date trong dùng để chuyển đổi thời gian thành các định dạng tùy chỉnh.

Cú pháp:

date(format, timestamp);

Trong đó:

  • format là định dạng thời gian mà các bạn muốn xuất ra.
  • timestamp là thời gian các bạn truyền vào (int) nếu để trống trường này thì PHP sẽ tự động lấy thời gian hiện tại.

Danh sách các format trong PHP

  1. h: Trả về giờ trong ngày kiểu 12h.
  2. H: Trả về giờ trong ngày kiểu 24h.
  3. i: Trả về phút trong giờ.
  4. s: Trả về số giây trong phút.
  5. d: trả về ngày trong tháng(từ 1- đến31).
  6. j: Trả về ngày trong tháng, nhưng nếu ngày<10 sẽ không hiển thị số 0.
  7. D: Trả về định dạng thứ trogn tuần bằng tiếng anh viết tắt.
  8. l: Trả về đầy đủ thứ trong tuần (tiếng anh).
  9. m: Trả về tháng trong năm (từ 1 đến 12).
  10. M: Trả về tháng trong năm nhưng bằng tiếng anh viết tắt.
  11. y: Trả về 2 số cuối cùng của năm.
  12. Y: trả về đầy đủ 4 số của năm.
  13. ... xem thêm

VD: Lấy ra ngày tháng năm hiện tại theo định dạng ngày-tháng-năm giờ:phút:giây.

echo date('d-m-Y H:i:s');
//output: 19-02-2017 22:08:08

Truyền chuỗi trong hàm date

-Để cho nội dung chuỗi mà các bạn muốn hiển thị được như ý muốn thì các bạn thêm \ vào trước các ký tự đặc biệt trong chuỗi.

VD:

echo date('\B\â\y \g\i\ờ \l\à d-m-Y H:i:s');
//output: Bây giờ là 19-02-2017 22:11:46

2, Các hàm xử lý khác

Chuyển đổi thời gian sang kiểu int

-Trong PHP có cung cấp cho chúng ta hàm strtotime(time) để chuyển đổi dữ liệu ngày tháng về kiểu INT.

VD:

echo strtotime(date('Y-m-d H:i:s'));
//output: 1487517353

Chuyển đồi kiểu thời gian

-Để chuyển đổi kiểu ngày tháng trong PHP các bạn dùng hàm date_format()

VD:

$date=date_create("2017-02-19");
echo date_format($date,"Y/m/d H:i:s");
//output: 2017/02/19 00:00:00

Tính toán ngày tháng

-Để tính toán đặc biệt là cộng trừ thêm ngày trong PHP chúng ta dùng hàm date_modify()

VD:

date_default_timezone_set('Asia/Ho_Chi_Minh');
$date=date_create("2017-02-19");
date_modify($date, "+11 days");
echo date_format($date, "Y-m-d");
//OUTPUT:2017-03-02

Chuyển ngày tháng về mảng

-Để chuyển đổi dữ liệu ngày tháng về dạng mảng trong PHP các bạn sử dụng hàm get_date()

VD:

echo '<pre>';
print_r(getdate());
echo '</pre>';
/*OUTPUT: 
Array
(
    [seconds] => 30
    [minutes] => 26
    [hours] => 22
    [mday] => 19
    [wday] => 0
    [mon] => 2
    [year] => 2017
    [yday] => 49
    [weekday] => Sunday
    [month] => February
    [0] => 1487517990
)*/

3, Lời Kết.

-Qua phần này chúng ta đã tìm hiểu xong về các hàm xử lý ngày tháng trong PHP rồi và vì nó nằm trong series cơ bản nên mình chỉ giới thiệu các hàm đơn giản thôi, ngoài ra bạn nào muốn tìm hiểu thêm có thể xem tại đây

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

2 Comments

OK mình muốn lấy giá trị ngày trong biểu thức ngày tháng kiểu tiếng Việt thì làm sao đây bạn

Minh

4 năm trước

/Date(1599336865807+0700)/   chuyển cái này là dùng hàm gì anh trước có làm mà h em quên mất tìm mãi k ra

Elyspa

4 năm trước

Bình luận

Captcha