Tôi phải có một ngày được thêm 6 tháng với ngày cụ thể. tôi đã sử dụng đoạn mã sauThêm ngày trong php cho kết quả khác nhau
$start_date = "2016-08-30";
$end_date= date("Y-m-d", strtotime("$start_date +6 months"));
echo $end_date;
đó đã cho kết quả như 2017-03-02
Sau đó, tôi đã thay đổi ngày bắt đầu trong mã như sau
$start_date = "2016-09-01";
$end_date= date("Y-m-d", strtotime("$start_date +6 months"));
echo $end_date;
được đưa ra kết quả như 2017-03 -01
Tại sao điều này xảy ra ngay từ đầu? Có gì sai với mã của tôi không?
Sử dụng Mysql truy vấn
SELECT DATE_ADD('2016-08-30', INTERVAL 6 MONTH)
cho kết quả 2017-02-28
Đó là giải pháp đúng để có được những ngày tháng chính xác?
Bạn có thể thử điều này. $ date = new DateTime ('2016-08-30); $ date-> add (DateInterval :: createFromDateString (+6 tháng)); var_dump ($ date); –
Câu hỏi đúng là: ** bạn ** có nghĩa là gì bởi '2016-08-30 +6 tháng'? Bạn mong đợi ngày nào nhận được từ biểu thức này mà không cần sử dụng máy tính? Có phải là ngày thứ 30 của tháng thứ 6 trong tương lai (tháng 2 trong trường hợp này) không? Hoặc '2016-08-30' cộng với' 6 * 30 ngày'? – axiac
@axiac: cũng bị nhầm lẫn ngay bây giờ về đầu ra dự kiến. Tôi đang sử dụng chức năng này để hết hạn một tính năng trong trang web của mình. Tôi đã chia sẻ sự cố này vì sự bất thường được tìm thấy và có thể hữu ích cho những người khác. – Thejas