Как исправить формат даты в PHP Codeigniter - PullRequest
0 голосов
/ 15 января 2019

У меня проблема с настройкой формата даты с помощью PHPExcel на Codeigniter

У меня уже есть контроллер и модель, и у меня есть доступ к

Модель: http://sistempintar.com/file/LingkunganModel.txt

Контроллер: http://sistempintar.com/file/Lingkungan.txt

Просмотр: http://sistempintar.com/file/form.txt

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

"Обнаружена ошибка PHP. Серьезность: Предупреждение

Сообщение: date_create (): Полагаться на настройки часового пояса системы небезопасно. Для использования установки date.timezone требуется или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов и все еще получаете это предупреждение, вы, скорее всего, неправильно указали идентификатор часового пояса. Сейчас мы выбрали часовой пояс UTC, но, пожалуйста, установите date.timezone, чтобы выбрать свойчасовой пояс.

Имя файла: Shared / Date.php

Номер строки: 167

Backtrace:

Файл: / home / u4502442 / public_html / sistempintar /демо / proyek / приложение / THIRD_PARTY / PHPExcel / PHPExcel / Shared / Date.php Строка: 167 Функция: date_create

Файл: /home/u4502442/public_html/sistempintar/demo/proyek/application/third_party/PHPExcel/PHPExcel/Style/NumberFormat.php Строка: 454Функция: ExcelToPHPObject

Файл: /home/u4502442/public_html/sistempintar/demo/proyek/application/third_party/PHPExcel/PHPExcel/Style/NumberFormat.php Строка: 607 Функция: _formatAsDate

: /home/u4502442/public_html/sistempintar/demo/proyek/application/third_party/PHPExcel/PHPExcel/Worksheet.php Строка: 2493 Функция: toFormattedString

Файл: / home / u4502442 / public_mompar sproyek / application / third_party / PHPExcel / PHPExcel / Worksheet.php Строка: 2556 Функция: rangeToArray

Файл: /home/u4502442/public_html/sistempintar/demo/proyek/application/controllers/Lingkungan.php Строка: 51Функция: toArray

Файл: /home/u4502442/public_html/sistempintar/demo/proyek/index.php Строка: 315 Функция: require_once "

и это мойdate.php: http://sistempintar.com/file/date.txt

Это изображение показывает ошибку:

http://sistempintar.com/file/format_database.png

Я не знаю, что не так, пожалуйста, помогите

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Решение этой проблемы заключается в том, что нам нужно преобразовать формат даты из даты в число, используя опцию Формат ячеек, чтобы наша дата отображала какие-то числовые данные в ячейке.

Это связано с тем, что в Excel используются простые форматы чисел для чтения дат, такие как 1/1/1900 = 1,00 и 16/1/2012 = 40924,00. Таким образом, всякий раз, когда нам нужно загрузить даты, используя Excel, мы должны преобразовать их в число, а затем загрузить его, и непосредственно перед запросом на вставку базы данных мы используем функцию, указанную ниже, чтобы преобразовать числовой формат в формат даты, который поддерживается базой данных.

function excel_number_to_date($num)

{

$num=$num-25570; //this is because php date function work only for date after 1/1/1970

return addday(‘1970/01/02’,$num);

}

Статический номер 25570 обозначена дата 01.01.1970. Потому что пока мы загружаем данные в MySQL, чем он не будет читать дату, которая старше, чем 01.01.1970. Thants почему я должен вычесть этот конкретный нет. IT полностью зависит от типа базы данных, а функция addday указана ниже.

function addday($dat,$days) //$date will be in YYYY/mm/dd format

{

$dat=str_replace(“/”,”-“,$dat);

$dat=date(“Y-m-d”,strtotime($dat));

return date(“Y-m-d”,strtotime($days.’ days’,strtotime($dat)));

}
0 голосов
/ 15 января 2019
date_default_timezone_set('Europe/Amsterdam');

Вы можете попробовать эту строку кода, чтобы установить часовой пояс в CodeIgniter.

Вы можете получить список часовых поясов для использования с здесь

0 голосов
/ 15 января 2019

Вам необходимо обновить настройки часового пояса PHP. В вашем файле php.ini найдите эту строку: date.timezone = и установите его в свой часовой пояс. Вы можете найти список поддерживаемых часовых поясов здесь: здесь

...