Как я могу редактировать диапазоны дат в PHP?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Как я могу редактировать диапазоны дат в PHP?

Сообщение Гость »


Я написал систему, которая объединяет или разделяет даты занятости отелей в соответствии с данными о квотах и ​​создает Excel. Все работает правильно, только есть небольшая проблема в разделе даты.

Позвольте мне объяснить проблему следующим образом:

При разделении даты данных, введенных в данные о состоянии, некоторые даты не разделяются, обычно даты, которые не разделяются, являются датами начала. Я не мог понять почему.

Ниже я делюсь с вами своими блоками кода. Я также делюсь данными своей базы данных. Я также поделюсь своим исходным результатом и результатом, который я хочу получить.

Раздел создания Excel. Я поделился только той частью, которая выполняет синтаксический анализ.

//////////////////////// EXCEL ISLEMLERI $hcode = $veri[0]->hcode; $rtype = $veri[0]->rtype; $mailsubject = $veri[0]->mailsubject; $veriExcel = HALIL::sorgula("SELECT * FROM vakanzfillrooms WHERE hcode =?", array($hcode)); $spreadsheet = новая таблица(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'BCH'); $sheet->setCellValue('B1', 'Форма запроса на выделение'); $sheet->setCellValue('F1', "Продано". PHP_EOL. "Комнаты"); $sheet->getStyle('F1')->getAlignment()->setWrapText(true); $sheet->setCellValue('G1', "Итого". PHP_EOL. "Выделение"); $sheet->getStyle('G1')->getAlignment()->setWrapText(true); $sheet->setCellValue('H1', «Пожалуйста, заполните». PHP_EOL. «вверх». PHP_EOL. «Дополнительное выделение.»); $sheet->getStyle('H1')->getAlignment()->setWrapText(true); $columnHeaders2 = ['Hcode', 'Название отеля', 'Тип номера', 'Дата начала', 'Дата окончания']; $col2 = 'А'; Еогеасп ($columnHeaders2 как $header2) { $sheet->setCellValue($col2 . '2', $header2); $стол2++; } usort($veriExcel, function($a, $b) { $odaTipSonuc = strcmp($a->rtype, $b->rtype); если ($odaTipSonuc == 0) { $tarihA = strtotime(str_replace('.', '-', $a->mailsubject)); $tarihB = strtotime(str_replace('.', '-', $b->mailsubject)); if ($tarihA == $tarihB) { вернуть 0; } return ($tarihA hcode, $veriExcel[$i]->rtype, $veriExcel[$i]->mailsubject); $resultDurumExcel = HALIL::sorgula($queryDurumExcel, $paramsDurumExcel); если (!пустой($resultDurumExcel)) { // "vakanzhcode" таблица вери булунуйорса $durumBirlestirmeExcelSorgusu = 'ВЫБРАТЬ durum FROM vakanzhcode WHERE hcode = ? И rтип = ? И mailsubject = ?'; $durumExcel = HALIL::sorgula($durumBirlestirmeExcelSorgusu, array($veriExcel[$i]->hcode, $veriExcel[$i]->rtype, $veriExcel[$i]->mailsubject)); если ($durumExcel != 4) { $birlestiilmisVeri[] = $veriExcel[$i]; продолжать; } } еще { // «Ваканжкод» таблицы, которая позволяет контролировать контроль и т. д. $onceki = strtotime(str_replace('.', '-', $veriExcel[$i - 1]->mailsubject)); $suanki = strtotime(str_replace('.', '-', $veriExcel[$i]->mailsubject)); $бирГун = 24 * 60 * 60; // 1 günün saniye cinsinden değeri if ($suanki - $onceki === $birGun && $veriExcel[$i - 1]->hcode === $veriExcel[$i]->hcode) { if ($veriExcel[$i - 1]->total_kontenjan === $veriExcel[$i]->total_kontenjan && $veriExcel[$i - 1]->dolu_kontenjan === $veriExcel[$i]->dolu_kontenjan) { $birlestirilmisVeri[count($birlestiilmisVeri) - 1]->mailsubject .= '- ' . $veriExcel[$i]->mailsubject; } еще { $mergedData[] = $dataExcel[$i]; } } еще { $mergedData[] = $dataExcel[$i]; } } } $строка = 3; $rowHeader = 1; foreach ($combinedVeri как $veriex) { $hotelCode = $veriex->hcode; $hotelName = $veriex->hname; $roomType = $veriex->rtype; $fullDateRange = $veriex->mailsubject; $totalContentjan = $veriex->total_content; $fullContent = $veriex->full_content; $dateRange = взорвать(' - ', $veriex->mailsubject); $startingDate = $dateRange[0]; $endDate = конец ($dateRange); $sheet->setCellValue('A'. $row, $hotelCode); $sheet->setCellValue('B'. $row, $hotelName); $sheet->setCellValue('C'. $row, $roomType); $sheet->setCellValue('D'. $row, $initialDate); // Записываем дату начала в столбец D $sheet->setCellValue('E'. $row, $endDate); // Записываем дату окончания в столбец E $sheet->setCellValue('F'. $row, $totalContent); $sheet->setCellValue('G'. $row, $fullContent); Примеры данных в базе данных SQL (ваканжкод):

INSERT INTO `vacanzhcode` (`id`, `hcode`, `status`, `rtype`, `mailsubject`) ЗНАЧЕНИЯ (905, 'ANDEI', '3', 'ESS EINZELZIMME', '05.11.2023'), (904, 'ANDEI', '3', 'ESS EINZELZIMME', '04.11.2023'), (903, 'ANDEI', '3', 'ESS EINZELZIMME', '16.03.2024'), (902, 'ANDEI', '3', 'ESS EINZELZIMME', '15.03.2024'), (901, 'ANDEI', '3', 'ESS EINZELZIMME', '10.03.2024'); Примеры данных в базе данных SQL (вакансии):

INSERT INTO `vacanzfillrooms` (`id`, `hcode`, `hname`, `rtype`, `mailsubject`, `mail`, `total_content`, `full_content`) ЗНАЧЕНИЯ (429, 'ANDEI', 'Dolphin Imperial', 'ESS EINZELZIMME', '04.11.2023', 'alper.aslan@bentour.ch', 4, 4), (430, 'ANDEI', 'Dolphin Imperial', 'ESS EINZELZIMME', '05.11.2023', 'alper.aslan@bentour.ch', 4, 4), (434, 'ANDEI', 'Dolphin Imperial', 'ESS EINZELZIMME', '10.03.2024', 'alper.aslan@bentour.ch', 2, 2), (439, 'ANDEI', 'Dolphin Imperial', 'ESS EINZELZIMME', '15.03.2024', 'alper.aslan@bentour.ch', 2, 2), (440, 'ANDEI', 'Dolphin Imperial', 'ESS EINZELZIMME', '16.03.2024', 'alper.aslan@bentour.ch', 2, 2); Исходный результат:


Изображение


Какой результат я хочу:


Изображение


Очевидно, я пробовал много разных кодов, но ни один из них не дал мне никаких результатов, возможно, я ищу проблему в другом месте. Думаю, мне нужен третий глаз.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу редактировать диапазоны дат в PHP?
    Гость » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Гость
  • Почему диапазоны::find и диапазоны::find_last имеют противоречивые типы возвращаемых значений?
    Anonymous » » в форуме C++
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Диапазоны дат ввода в обоих диапазонах массива
    Anonymous » » в форуме Jquery
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Группировать диапазоны дат в сегменты
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Группировать диапазоны дат в сегменты
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»