CakePHP сохраняет 30 декабря 2024 года как 30 декабря 2025 года в MariaDB, но 29 декабря 2024 года работает правильно.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 CakePHP сохраняет 30 декабря 2024 года как 30 декабря 2025 года в MariaDB, но 29 декабря 2024 года работает правильно.

Сообщение Anonymous »

Я работаю над приложением CakePHP, в котором сохраняю даты в базу данных MariaDB. Поле opens_date имеет тип DATE. Однако я столкнулся с необычной проблемой:
  • Когда я сохраняю 2024-12-30, он сохраняется как 2025-12-30. .
  • Когда я сохраняю 29 декабря 2024 г., все работает как положено и остается 29 декабря 2024 г..
Мое приложение настроено на использование индийского часового пояса (

Код: Выделить всё

Asia/Kolkata). Вот структура таблицы для справки:
CREATE TABLE attendance_details (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
student_id INT(11) NOT NULL,
year_id INT(11) NOT NULL,
absent_date DATE NOT NULL
);
Вот мой метод массовой загрузки:

Код: Выделить всё

public function bulkUpload($data = array())
{
$entities = $this->newEntities($data);
dd($entities); // Debugging the entities

$this->saveMany($entities);
return true;
}
Вывод отладки на 30 декабря 2024 г.:

Код: Выделить всё

array:3 [
0 => Entity {#255 ▼
#_properties: array:3 [▼
"student_id" => 1
"year_id" => 7
"absent_date" => "2024-12-30"
]
#_original: []
#_hidden: []
#_virtual: []
#_className: null
#_dirty: array:3 [▶]
#_new: true
#_errors: []
#_invalid: []
#_accessible: array:1 [▶]
#_registryAlias: "AttendanceDetails"
student_id: 1
year_id: 7
absent_date: "2024-12-30"
[new]: true
[accessible]: array:1 [▶]
[dirty]: array:3 [▶]
[original]: []
[virtual]: []
[hasErrors]: false
[errors]: []
[invalid]: []
[repository]: "AttendanceDetails"
}
]
Наблюдения:
  • Если я напрямую сохраняю дату в базе данных с помощью ручного запроса, она сохраняется правильно как 30 декабря 2024 г..
  • Эта проблема возникает только при хранении данных через CakePHP.
  • Я подозреваю, что это может быть связано с конверсиями часовых поясов или способ, которым CakePHP обрабатывает поля DATE.
Временное решение:
Все работает нормально, если я измените тип данных отсутствующего_даты на VARCHAR, но я хочу сохранить тип данных DATE для правильной обработки и запроса даты.
Вопрос:
Вопрос:
Кто-нибудь сталкивался аналогичная проблема или знает, как ее решить, сохранив тип данных DATE?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ks-correct
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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