Hướng dẫn dùng timezone -7 trong PHP
Nội Dung Show
1. Thiết lập thời gian ở Việt NamĐầu tiên để có thể có thời gian đúng theo múi giờ Việt Nam thì bắt buộc ta sẽ thiết lập time zone cho nó(múi giờ). Để thiết lập được time zone bằng hàm date_default_timezone_set() Cú pháp:
Nếu thời gian bạn nhận từ mã không chính xác, có thể do máy chủ của bạn ở quốc gia khác hoặc được thiết lập cho múi giờ khác. Vì vậy nếu bạn cần thời gian chính xác cho một vị trí cụ thể, bạn có thể đặt vị trí cụ thể nhất cho nó. Ví dụ: Lệnh này sẽ ảnh hưởng tới tất cả các lệnh xử lý ngày tháng phía bên dưới nó nên để được chính xác nhất hãy đặt hàm này ở đầu file nhé! Để xem danh sách timezone mà PHP hỗ trợ thì các bạn hãy sử dụng đoạn code sau: $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() trong PHPHàm date() dùng để chuyển đổi thời gian theo format mà lập trình viên mong muốn, hay nói cách khác là nó dùng để chuyển đổi thời gian thành các định dạng tùy chỉnh. Cú pháp:
Trong đó:
Mình sẽ nói một số các format mà ta sẽ hay sử dụng nhé:
Và còn nhiều format khác các bạn có thể tham khảo tại: php.net Các ký tự như “/” “.” hoặc “-“ cũng có thể được chèn vào giữa các ký tự để thêm định dạng bổ sung. Ví dụ: lấy ngày tháng năm hiện tại: "; echo "Today is " . date("d.m.Y") . " Các bạn hãy chạy để ra ngày học khóa học này nhé! Lưu ý Bạn có thể sử dụng hàm date() của PHP để tự động cập nhật thời hạn bản quyền trên trang web của mình, như: Copyright @ 2002- 3. Một số hàm xử lý khác trong PHP3.1. Truyền chuỗi vào định dạng formatĐể truyền nội dung chuỗi mà ta muốn hiển thị như mong muốn thì ta phải thêm dấu \ vào trước các ký tự đặc biệt trong chuỗi. Điều này giúp chuỗi không trùng với format của key của PHP. Ví dụ: echo date('Bây giờ là H giờ'); echo date('\B\â\y \g\i\ờ \l\à H \g\i\ờ'); 3.2. Chuyển đổi thời gian sang kiểu INTĐể chuyển đổi thời gian sang kiểu INT thì ta sử dụng hàm strtotime($time). Hàm này giúp ta chuyển đổi chuỗi ngày có thể đọc được của con người thành thời gian Unix(số giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 GMT). Cú pháp: strtotime(time, now); Ví dụ: echo strtotime(date('Y-m-d H:i:s')); Sử dụng hàm date() để định dạng ngày giờ từ hàm được tạo: PHP khá thông minh về việc chuyển đổi một chuỗi thành một ngày, vì vậy bạn có thể đặt các giá trị khác nhau. "; $d = strtotime("next Saturday"); echo date("Y-m-d h:i:sa", $d) . " Tuy nhiên, strtotime() không phải là hoàn hảo, vì vậy hãy nhớ kiểm tra các chuỗi bạn đặt vào đó. 3.3. Chuyển đổi kiểu thời gianĐể chuyển đổi kiểu thời gian ta dùng hàm date_format() Ví dụ: $date=date_create("2021-09-30"); echo date_format($date,"Y/m/d H:i:s"); 3.4. 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(). Ví dụ: date_default_timezone_set('Asia/Ha_Noi'); $date=date_create("2017-09-30"); date_modify($date, "+11 days"); echo date_format($date, "Y-m-d"); 3.5. Chuyển đổi 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(). Ví dụ: echo ''; print_r(getdate()); echo ''; 3.6. Xử lý cộng trừ ngày tháng với hàm mktime()Hàm mktime() được sử dụng để tạo dấu thời gian dựa trên ngày và giờ cụ thể. Tham số dấu thời gian tùy chọn trong hàm date() chỉ định một dấu thời gian. Nếu bỏ qua, ngày và giờ hiện tại sẽ được sử dụng Hàm PHP mktime() trả về dấu thời gian Unix cho một ngày. Dấu thời gian Unix chứa số giây giữa Kỷ nguyên Unix (ngày 1 tháng 1 năm 1970 00:00:00 GMT) và thời gian được chỉ định. Cú pháp:
Lưu ý
Ví dụ: Hàm mktime() cũng có thể được sử dụng để tìm tên ngày trong tuần tương ứng với một ngày cụ thể. Để thực hiện việc này, chỉ cần sử dụng ký tự ‘l’ (chữ thường ‘L’) với dấu thời gian của bạn, như trong ví dụ sau, hiển thị ngày rơi vào ngày 30 tháng 9 năm 2021: Hàm mktime() cũng có thể được 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ể. Như trong ví dụ sau, ngày nào sẽ hiển thị ngày rơi sau 30 tháng kể từ ngày hiện tại: Hoặc có thể xem ngày mai, tháng tới, năm tới: $tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); |