Cộng trừ ngày tháng trong PHP
Như các bạn đã biết PHP hỗ trợ khá nhiều hàm để xử lý các vấn đề liên quan đến thời gian (các bạn có thể tham khảo tại đây), nhưng đôi khi nhiều quá làm người dùng lúng túng không biết nên sử dụng hàm nào. Ở bài viết trước, tôi đã dùng hàm strtotime() để so sánh các ngày với nhau và hôm nay tôi sẽ kết hợp hàm đó với hàm strftime() để tính toán xem nếu lấy ngày hiện tại cộng thêm 1 tuần/1 tháng / 1 quý…. thì sẽ là ngày nào.
Các bạn có thể tham khảo đoạn code dưới đây:
//Lấy ngày hiện tại
$today = date('Y-m-d');
echo "Today is ". $today . "<br />";
//Cộng thêm 1 tuần
$week = strtotime(date("Y-m-d", strtotime($today)) . " +1 week");
$week = strftime("%Y-%m-%d",$week);
echo "A week later is ". $week . "<br />";
//Cộng thêm 1 tháng
$month = strtotime(date("Y-m-d", strtotime($today)) . " +1 month");
$month = strftime("%Y-%m-%d",$month);
echo "A month later is ". $month . "<br />";
?>
Kết quả:
A week later is 2011/08/23
A month later is 2011/09/16
Tổng kết,
Việc sử dụng uyển chuyển giữa các hàm sẽ giúp bạn giải quyết khá nhiều trường hợp khiến bạn đau đầu. Nếu bạn quen với việc tra hàm trên PHP Manual, tôi khuyên nên tham khảo thêm trang w3schools.com , tuy là trang tiếng Anh nhưng trang web sử dụng những từ đơn giản và có ví dụ rất dễ hiểu. Tôi cũng hay vào trang web này để tìm tư liệu cho các bài viết. Chúc vui !



782 Views
Posted under: ![[PHP] Xóa tất cả file và thư mục con](http://tanvietblog.com/wp-content/uploads/2012/03/del-150x150.jpg)
![[PHP] Nhập 1 ngày bất kỳ và in ra danh sách của tuần chứa ngày đó](http://tanvietblog.com/wp-content/uploads/2012/06/the-daily-logo-150x150.jpg)
![[PHP] Lấy thông tin của 1 địa điểm trên Google Maps](http://tanvietblog.com/wp-content/uploads/2012/07/cach-lay-toa-do-tren-google-maps-tanvietblog-150x150.jpg)
![[PHP] Sử dụng Facebook SDK để lấy Facebook Page ID](http://tanvietblog.com/wp-content/uploads/2013/02/how_to_get_facebook_page_id-150x150.jpg)
Nếu ta không dùng ngày hiện tại để cộng, trừ thì sao ha ban?
Vd như tôi muốn biết ngày 12/8/2010 trừ 30 ngày (tôi muốn tìm ngày trước đó 1 tháng) là ngày mấy? Trả về kiểu ngày tháng năm. Mong bạn giúp! Chân thành cảm ơn!
Mình đã viết 1 đoạn code nhỏ theo yêu cầu của bạn, bạn xem đây có phải là điều bạn cần không nhé
$input_date = '12/08/2010';
$month = strtotime(date("d/m/Y", strtotime($input_date)) . " -1 month");
$month = strftime("%d/%m/%Y", $month);
echo "A month previous is ". $month . "<br />";
?>
Bài viết rất hay!
CHo mình hỏi chút là. Nhập vào ngày bắt đầu là ngày 15/7/2012 và ngày kết thúc là ngày 20/7/2012. Vậy làm sao để biết được từ ngày 15 đến ngày 20 là 5 ngày?? và nếu ngày kết thúc sang 1 tháng mới là ngày 20/8/2012 thì sẽ tính thế nào ?
Ae nào biết giúp mình với. Thanks
Chào bạn,
Mình đã viết một bài viết liên quan đến câu hỏi của bạn, bạn đọc thêm tại http://tanvietblog.info/2012/07/15/php-tinh-khoang-cach-giua-2-ngay-bat-ky nhé.
Thân ái!