biểu mẫu của tôi có 2 lĩnh vực - Time_from và Time_toDateTime thêm 1 ngày
Bây giờ tôi cần phải thêm một mục trong cơ sở dữ liệu của tôi cho mỗi ngày (Nếu theres một sự khác biệt giữa những ngày đó) cũ. Time_from = 2013/08/26 08:00:00 và Time_to = 2013/08/28 16:00:00 Vì vậy, trong cơ sở dữ liệu của tôi sẽ nhận được 3 mục
Time_from = 2013-08-26 08:00:00 and Time_to = 2013-08-26 16:00:00
Time_from = 2013-08-27 08:00:00 and Time_to = 2013-08-27 16:00:00
Time_from = 2013-08-28 08:00:00 and Time_to = 2013-08-28 16:00:00
Vì vậy, cho mục đích mà tôi đã thực hiện một phương pháp, nơi tôi lần đầu tiên tìm thấy sự khác biệt giữa những ngày 2 và sau đó tôi đang sử dụng một vòng lặp cho rằng sẽ chạy như nhiều ngày trong sự khác biệt những 2 ngày có, và ở cuối im chỉ cần thêm 1 ngày.
public function createOffer($offer)
{
$time_from = new DateTime($offer->time_from);
$time_to = new DateTime($offer->time_to);
$interval = $time_from->diff($time_to);
for ($counter = 0; $counter <= $interval->d; $counter++) {
$offer->time_from = $time_from->format('Y-m-d H:i:s');
$offer_time_to = new DateTime($time_from->format('Y-m-d'));
$offer_time_to->setTime($time_to->format('H'), $time_to->format('i')
, $time_to->format('s'));
$offer->time_to = $offer_time_to->format('Y-m-d H:i:s');
if ($offer->validate()) {
$offer->save();
}
date_modify($time_from, '+1 day');
}
}
Vì lý do nào đó, mã không hoạt động.
Khi tôi loại bỏ các lĩnh vực date_modify chỉ trong ngày đầu tiên sẽ được lưu trong cơ sở dữ liệu của tôi (Đoán cho vòng lặp chỉ được chạy khi sau đó)
Nhưng với sự date_modify trong mã của tôi, chỉ có ngày cuối cùng được lưu trong kho dữ liệu.
$ interval-> d không có sự khác biệt "ngày", chỉ vài giờ, trong thời gian cho nên vòng lặp sẽ chỉ chạy một lần – Anigel
Vì vậy, sự khác biệt giữa các ngày chỉ được hiển thị i giờ? – CreamYGEEK
http://phpfiddle.org/main/code/3r1-6hc là bạn chắc chắn bạn không muốn $ interval-> h thay vì interval-> d – Anigel