从 PHP 中的导入 Excel 中读取日期值
Read date value from import Excel in PHP
我在从导入值 (Excel) 到 mysql 数据库中读取日期值时遇到问题。我的代码如下:
$dataexcel[$i-3]['date_edit'] = date('m/d/Y', strtotime(trim($data['cells'][$i][25])));
我尝试使用 strtotime
来定义 excel 的值,但是我无法将其保存到数据库中,如果我在 excel 中的值具有 excel 日期格式为1/1/2018
(读作2018年1月1日,英文时间格式),在我使用上面的代码后,它保存为1970-01-01
,表示1970年1月1日。
在另一个例子中,
我尝试了另一个日期 2/1/2018
的输入,它作为 2018-02-02
.
保存到数据库中
从我上面的示例中,首先出现了年份的不匹配问题,然后在第二个示例中出现了日期的不匹配问题,
如果我想以简单的方式保存日期格式,如何声明日期来解决我的问题?
如果有什么建议,谢谢...
保持简单。读取文件时使用定义的日期格式(日期格式可以作为参数提供,以防需要调整)。然后,以下列方式读取日期,而不仅仅是使用 strtotime(取自 php.net 的示例):
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
您的代码的相关示例,使用之前的 $date 变量:
$dataexcel[$i-3]['date_edit'] = $date->format("y-M-Y");
更多信息 - http://php.net/manual/en/datetime.createfromformat.php
一个简单的函数就可以完成这件事
$date = str_replace("/", ".", $data['cells'][$i][25]);// replace the / with .
$date = date("Y-m-d", strtotime($date));
$dataexcel[$i-3]['date_edit'] = $date;
并且在数据库中默认的日期格式是 YYYY-MM-DD ,所以它正确地保存到数据库中
根据您的评论回答,您可以修改如下代码:
$date = str_replace("/", ".", $data['cells'][$i][25]);
$dates = date("Y-m-j", strtotime($date));
$dataexcel[$i-3]['date_edit'] = $dates;
$date 仍然从未使用的值中获取 strotime
,因此日期格式读取不正确...
我在从导入值 (Excel) 到 mysql 数据库中读取日期值时遇到问题。我的代码如下:
$dataexcel[$i-3]['date_edit'] = date('m/d/Y', strtotime(trim($data['cells'][$i][25])));
我尝试使用 strtotime
来定义 excel 的值,但是我无法将其保存到数据库中,如果我在 excel 中的值具有 excel 日期格式为1/1/2018
(读作2018年1月1日,英文时间格式),在我使用上面的代码后,它保存为1970-01-01
,表示1970年1月1日。
在另一个例子中,
我尝试了另一个日期 2/1/2018
的输入,它作为 2018-02-02
.
从我上面的示例中,首先出现了年份的不匹配问题,然后在第二个示例中出现了日期的不匹配问题,
如果我想以简单的方式保存日期格式,如何声明日期来解决我的问题? 如果有什么建议,谢谢...
保持简单。读取文件时使用定义的日期格式(日期格式可以作为参数提供,以防需要调整)。然后,以下列方式读取日期,而不仅仅是使用 strtotime(取自 php.net 的示例):
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
您的代码的相关示例,使用之前的 $date 变量:
$dataexcel[$i-3]['date_edit'] = $date->format("y-M-Y");
更多信息 - http://php.net/manual/en/datetime.createfromformat.php
一个简单的函数就可以完成这件事
$date = str_replace("/", ".", $data['cells'][$i][25]);// replace the / with .
$date = date("Y-m-d", strtotime($date));
$dataexcel[$i-3]['date_edit'] = $date;
并且在数据库中默认的日期格式是 YYYY-MM-DD ,所以它正确地保存到数据库中
根据您的评论回答,您可以修改如下代码:
$date = str_replace("/", ".", $data['cells'][$i][25]);
$dates = date("Y-m-j", strtotime($date));
$dataexcel[$i-3]['date_edit'] = $dates;
$date 仍然从未使用的值中获取 strotime
,因此日期格式读取不正确...