0

question i am attempting to create looping between two date i have code like below

<!DOCTYPE html>
<html>
<body>
<?php
date_default_timezone_set('UTC');

$start_date = '2020-12-01';
$end_date = '2020-12-07';

while (strtotime($start_date) <= strtotime($end_date)) {
    $timestamp = strtotime($start_date);
    $day = date('D', $timestamp);
    echo "Check_in : " . "$start_date" . "  $dayn" . "Check_out : " . "$end_date" . "<br>";
    $start_date = date ("Y-m-d", strtotime("+1 days", strtotime($start_date)));
}
?>
</body>
</html>

how to make output something like this so i can input to my database mysql

Check_in : 2020-12-01 Check_out : 2020-12-02
Check_in : 2020-12-02 Check_out : 2020-12-03
Check_in : 2020-12-03 Check_out : 2020-12-04
Check_in : 2020-12-04 Check_out : 2020-12-05
Check_in : 2020-12-05 Check_out : 2020-12-06
Check_in : 2020-12-06 Check_out : 2020-12-07
Wahyu Artadianto
  • 117
  • 1
  • 2
  • 15
  • You essentially need a [date range](https://stackoverflow.com/questions/4312439/php-return-all-dates-between-two-dates-in-an-array). – El_Vanja Dec 18 '20 at 12:13

1 Answers1

0
$begin = new DateTime('2020-12-01');
$end = new DateTime('2020-12-07');

$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);

foreach ($period as $dt) {
  $moddat = $dt->format("Y-m-d");
  $nextdat = date('Y-m-d', strtotime($moddat. ' + 1 day'));
  echo 'Check IN :'.$moddat.' Check OUT :'.$nextdat;
  echo '<br>';
}

Try this code, You will get a Expected output