如何在PHP Codeigniter中修复日期格式

时间:2019-01-15 11:35:28

标签: php codeigniter phpexcel

我在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

     

回溯:

     

文件:   /home/u4502442/public_html/sistempintar/demo/proyek/application/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_html/sistempintar/demo/proyek/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 :(得分:0)

您需要更新PHP时区设置。在您的php.ini文件中,查找以下行:   date.timezone = 并将其设置为您的时区。 您可以在此处找到受支持的时区列表:here

答案 1 :(得分:0)

此问题的解决方案是,我们必须使用格式单元格格式将日期格式从日期转换为数字,以便我们的日期在单元格上显示某种数字数据。

这是因为excel使用简单的数字格式来读取日期,例如1/1/1900 = 1.00和16/1/2012 = 40924.00。因此,每当必须使用excel上传日期时,我们都必须将其转换为数字,然后再上传,并且在对数据库进行插入查询之前,我们使用下面列出的函数将数字格式转换为数据库支持的日期格式。 / p>

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表示日期为1/1/1970。因为当我们在MySQL中上传数据时,它不会读取早于1970年1月1日的日期。为何我必须减去此特定编号。 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)));

}

答案 2 :(得分:0)

date_default_timezone_set('Europe/Amsterdam');

您可以尝试使用以下代码行在CodeIgniter中设置时区。

您可以从here

中获取要使用的时区列表。