- strtotime (String to time), đọc lướt qua tên hàm, mình chắc rằng nhiều bạn đã đoán được ý nghĩa của hàm này rồi
- strtotime là một hàm trong PHP dùng để chuyển đổi một chuỗi ngày và giờ thành timestamp. Timestamp là một số nguyên thể hiện số giây từ thời điểm 1-1-1970 đến thời điểm hiện tại. Hàm này có thể chuyển đổi các chuỗi ngày tháng theo định dạng tùy chọn và có thể chuyển đổi các ngày trong tương lai hoặc quá khứ.
I - Tại sao nên sử dụng strtotime trong php ?
- Chuyển đổi chuỗi ngày tháng sang dạng timestamp: Hàm strtotime cho phép chuyển đổi các chuỗi ngày tháng sang dạng timestamp, giúp ta xử lý và so sánh các ngày tháng một cách dễ dàng hơn.
- Hỗ trợ nhiều định dạng ngày tháng: Hàm strtotime hỗ trợ rất nhiều định dạng ngày tháng khác nhau, giúp ta chuyển đổi các chuỗi ngày tháng theo định dạng tùy chọn mà không cần viết code phức tạp.
- Tính toán khoảng thời gian giữa hai ngày: Hàm strtotime có thể giúp ta tính toán khoảng thời gian giữa hai ngày tháng, ví dụ như tìm kiếm các bản ghi trong một khoảng thời gian, tính toán số ngày giữa hai ngày, v.v.
- Chuyển đổi các ngày trong tương lai hoặc quá khứ: Hàm strtotime có thể chuyển đổi cả các ngày trong tương lai hoặc quá khứ, giúp ta xử lý các ngày tháng trong tương lai hoặc quá khứ một cách dễ dàng hơn.
- Ngoài ra, hàm strtotime cũng hỗ trợ rất nhiều định dạng ngày tháng khác nhau, giúp ta chuyển đổi các chuỗi ngày tháng theo định dạng tùy chọn mà không cần viết code phức tạp.
II - Sử dụng strtotime trong php như thế nào ?
- Cú pháp:
Mã nguồn PHP:
strtotime(string $datetime, ?int $baseTimestamp = null): int|false
+ $datetime : chuỗi định dạng thời gian
+ $baseTimestamp : dấu thời gian được sử dụng làm cơ sở để tính toán ngày tương đối.
Sử dụng hàm strtotime trong PHP có nhiều cách khác nhau, một trong những cách đơn giản nhất là sử dụng nó như một hàm bình thường. Ví dụ:
Mã nguồn PHP:
$date = "2022-12-31";
$timestamp = strtotime($date);
echo $timestamp;
Trong đó, $date là chuỗi ngày tháng cần chuyển đổi sang timestamp. Kết quả trả về của hàm strtotime sẽ là một số timestamp tương ứng với ngày tháng đó.
Các tham số và trả về của hàm strtotime có thể xem thêm trong tài liệu PHP tại đây:
https://www.php.net/manual/en/function.strtotime.php
Các bạn có thể sử dụng hàm này để làm nhiều việc khác nhau như tính toán khoảng thời gian giữa hai ngày, so sánh ngày tháng, v.v...
III - Khi nào nên sử dụng strtotime trong php
- Khi cần chuyển đổi chuỗi ngày tháng sang timestamp.
- Khi cần tính toán khoảng thời gian giữa hai ngày.
- Khi cần kiểm tra xem một ngày có phải là ngày cuối tuần hay không.
- Khi cần tính số ngày còn lại đến một ngày cụ thể.
- Khi cần xử lý các dữ liệu ngày tháng trong ứng dụng, ví dụ như tính toán tuổi, tính khoảng thời gian giữa hai ngày, định dạng ngày tháng trong biểu mẫu, v.v.
- Strtotime là một hàm rất hữu ích trong việc xử lý các dữ liệu ngày tháng trong PHP. Nó có thể giúp bạn chuyển đổi chuỗi ngày tháng sang timestamp hoặc tính toán các khoảng thời gian giữa hai ngày, giúp giải quyết nhiều tác vụ liên quan đến xử lý dữ liệu ngày tháng trong ứng dụng.
IV - Những lưu ý khi sử dụng strtotime trong php
- Hàm strtotime chỉ hỗ trợ chuỗi ngày tháng theo định dạng “Y-m-d” hoặc “d-m-Y” (ví dụ: “2022-12-31” hoặc “31-12-2022”). Nếu sử dụng định dạng khác sẽ gây lỗi hoặc không chuyển đổi được.
- Trong trường hợp chuỗi ngày tháng không hợp lệ hoặc không tồn tại, hàm sẽ trả về giá trị false.
- Sử dụng hàm strtotime trước khi sử dụng các hàm ngày tháng khác (date, date_create, …) để tránh lỗi do định dạng ngày tháng không hợp lệ.
- Khi sử dụng hàm strtotime với tham số là chuỗi thời gian tương lai, chúng ta nên xác định rõ thời gian múc tiêu của chúng ta để tránh lỗi do thay đổi thời gian máy tính.
1. Chuyển đổi chuỗi ngày tháng sang timestamp:
Mã nguồn PHP:
$date = "2022-12-31";
$timestamp = strtotime($date);
echo $timestamp;
2. Tính khoảng thời gian giữa hai ngày:
Mã nguồn PHP:
$date1 = "2022-12-31";
$date2 = "2023-01-01";
$diff = strtotime($date2) - strtotime($date1);
echo "Số ngày giữa hai ngày là: " . $diff / (60*60*24);
3. Kiểm tra xem một ngày có phải là ngày cuối tuần hay không:
Mã nguồn PHP:
$date = "2022-12-31";
$day_of_week = date('w', strtotime($date));
if($day_of_week == 0 || $day_of_week == 6) {
echo "$date là ngày cuối tuần";
} else {
echo "$date không phải là ngày cuối tuần";
}
4. Tính số ngày còn lại đến một ngày cụ thể:
Mã nguồn PHP:
$date = "2022-12-31";
$today = date('Y-m-d');
$days_left = floor((strtotime($date) - strtotime($today)) / (60*60*24));
echo "Số ngày còn lại đến $date là: $days_left";
Các ví dụ trên chỉ là một số ví dụ đơn giản về cách sử dụng hàm strtotime trong PHP, các bạn có thể sử dụng nó để làm nhiều việc khác nhau tùy thuộc vào nhu cầu của mình.
V - Kết luận
Hàm strtotime trong PHP là một hàm rất hữu ích trong việc chuyển đổi chuỗi ngày tháng sang timestamp hoặc tính toán các khoảng thời gian giữa hai ngày. Nó còn có thể sử dụng để kiểm tra xem một ngày có phải là ngày cuối tuần hay không hay tính số ngày còn lại đến một ngày cụ thể. Những lưu ý khi sử dụng strtotime là chuỗi ngày tháng nhập vào phải đúng định dạng và chú ý về múi giờ.
VI - Tài liệu tham khảo
https://www.php.net/manual/en/function.strtotime.php