Решение этой проблемы заключается в том, что нам нужно преобразовать формат даты из даты в число, используя опцию Формат ячеек, чтобы наша дата отображала какие-то числовые данные в ячейке.
Это связано с тем, что в 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)));
}