Một số hàm (functions) xử lý Ngày tháng (datetime) trong PHP
1. Thiết lập time_zone tại Việt Nam
Dùng để xác lập múi giờ trong việc xử lý ngày tháng trong PHP.
<?php
// Thiết lập Múi giờ Nhật bản
date_default_timezone_set('Asia/Tokyo');
// Thiết lập Múi giờ Việt nam
date_default_timezone_set('Asia/Ho_Chi_Minh');
?>
<?php
// Liệt kê danh sách tất cả các TimeZones được hỗ trợ trong PHP
$timezones = DateTimeZone::listIdentifiers() ;
foreach ($timezones as $item){
echo $item . '<br/>';
}
?>
2. Hàm time()
Dùng để hiển thị Ngày giờ hiện tại theo kiểu số nguyên TIMESTAMPS.
- Timestamps: là con số nguyên Integer hiển thị số giây tổng số giây tính từ
0 giờ 0 phút 0 giây ngày 0 tháng 0 năm 0 đến thời điểm hiện tại.
Ví dụ:
<?php
// Hiển thị ngày giờ hiện tại theo kiểu TIMESTAMPS
// Ví dụ:
// Vào lúc 27/07/2022 (18:00:53) ⇒ 1658919653 (giây)
echo time();
?>
3. Hàm date()
Nếu bạn cần hiển thị ngày tháng hiện tại hay ở thời gian nào đó thì có thể sử dụng hàm date() , nó sẽ hiển thị ra với định dạng ngày tháng theo quy tắc bạn đã thiết lập.
Ví dụ:
<?php
// Hiển thị ngày giờ hiện tại
echo date('d/m/Y H:i:s');
?>
Với các tham số định dạng format Ngày tháng như sau:
- d - định dạng ngày bao gồm 2 chữ số vd: 01, 19
- m - định dạng tháng
- Y - định dạng năm dạng 1989, 2022
- h - định dạng giờ dạng 12 giờ
- H- định dạng giờ dạng 24 giờ
- i - định dạng phút
- s - định dạng giây
Định dạng ngày tháng trong MySQL
Để lưu đúng định dạng ngày tháng trong MySQL thì cần lưu trữ theo đúng định dạng ISO năm-tháng-ngày-giờ(24)-phút-giây
<?php
// Hiển thị ngày giờ theo định dạng MySQL
echo date('Y-m-d H:i:s');
?>
4. Chuyển đổi Thời gian sang kiểu INT
Hàm này dùng để chuyển chuỗi ký tự Ngày tháng sang dạng Timestamp
Ví dụ:
<?php
// Chuyển đổi ngày giờ hiện tại sang kiểu INT
// Kiểu TimeStamps
echo strtotime( date('Y-m-d H:i:s') );
?>
5. Xử lý công trừ ngày tháng với hàm mktime()
Hàm này sẽ tính toán cho ra ngày chính xác với các tham số truyền vào, cú pháp hàm như sau:
<?php
mktime ($hour, $minute, $second, $month, $day , $year);
Hàm này sẽ trả về thời gian kiểu Timestamp (int), nên cần phải sử dụng hàm date() để chuyển đổi ra định dạng mong muốn.
Ví dụ:
<?php
// Lấy ngày giờ hiện tại
$hien_tai_ngay = date('d');
$hien_tai_thang = date('m');
$hien_tai_nam = date('Y');
$hien_tai_gio = date('H');
$hien_tai_phut = date('i');
$hien_tai_giay = date('s');
// Ví dụ: 27/07/2022 21:30:15
// Lấy ngày hiện tại cộng thêm 10 ngày thì sẽ là ngày mấy?
$ngay_kieu_timestamp = mktime($hien_tai_gio, $hien_tai_phut, $hien_tai_giay, $hien_tai_thang, $hien_tai_ngay + 10, $hien_tai_nam);
// Kết quả: 06/08/2022 21:30:15
echo date('d/m/Y H:i:s', $ngay_kieu_timestamp);
?>
|