php - 当从 excel 文件中插入日期到 MySQL 数据库中时,我遇到了日期更改问题
问题描述
当我尝试将 excel 文件中的日期插入到我的数据库中时,日期更改如下:在 excel 中,日期是 29-08-2020 到我的数据库中,它变成这样 03-07-2044 我该怎么做才能解决这个问题。这是我使用的 PHP 代码
$object = PHPExcel_IOFactory::load($_FILES["excel_file"]["tmp_name"]);
foreach($object->getWorksheetIterator() as $worksheet) {
$highestRow = $worksheet->getHighestRow();
for($row=2; $row<=$highestRow; $row++) {
$id = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(0, $row)->getValue());
$name = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(1, $row)->getValue());
$mufadala_date = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(2, $row)->getValue());
$mark = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(3, $row)->getValue());
$secondary_school = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(4, $row)->getValue());
$secondary_type = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(5, $row)->getValue());
$secondary_date = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(6, $row)->getValue());
$specialization = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(7, $row)->getValue());
$is_syrian = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(8, $row)->getValue());
$with_mufadala = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(9, $row)->getValue());
$DbDate = date("YYYY-mm-dd", strtotime($mufadala_date);
mysqli_set_charset($connect,"utf8");
$query = "INSERT INTO tbl_accepted
(Student_Name, Mufadala_Date, Mark,
Secondary_School, Secondary_Type ,
Secondary_Date, Specialization ,
IsSyrian , WithMufadala)
VALUES ('".$name."', '".$DbDate."', '".$mark."',
'".$secondary_school."',
'".$secondary_type."', '".$secondary_date."',
'".$specialization."', '".$is_syrian."',
'".$with_mufadala."') ";
mysqli_query($connect, $query);
}
}
$output = '';
$output .= "تم تحميل الملف بنجاح ";
echo $output;
}
解决方案
假设在excel文件中写入的日期以$date
dd-mm-yyyy格式存储。你必须创建你的 php 日期时间对象:
$dateObj = DateTime::createFromFormat('d-m-Y', $date);
$dataToStoreInDB = $dateObj -> format('Y-m-d');
现在您可以对 $dateTOStoreInDB var 进行插入查询。
推荐阅读
- python-3.x - Python - 将值填充到电子表格时出错(使用 xlsxwriter)
- javascript - 如何使用 JS 获得焦点表单元素?
- html - CSS, height 使边框颜色改变
- javascript - 如何在 Application Insights 中处理跟踪的信息
- python - 列表索引在搜索算法中过时了
- angular - 为什么 Angular 会切断字符串?
- jquery - 在某些 Jquery 代码上添加三元运算符时出现问题
- c# - Asp.net Datagrid:一次删除一行,即使下一行中有相同的信息c#
- python - Python - pandas 写入 csv 文件时避免拆分字符串列
- javascript - 如何在Javascript中退出函数内的循环