Javascript 当导出为EXCEL文件时,为什么jQuery数据表在Laravel中的月份为两位数时不能正确导出日期?

Javascript 当导出为EXCEL文件时,为什么jQuery数据表在Laravel中的月份为两位数时不能正确导出日期?,javascript,jquery,datatables,Javascript,Jquery,Datatables,我想将数据导出为视图中所示的EXCEL文件,它可以正常工作,但没有正确导出日期,我尝试了如下操作: $('#get_hourly_report').click(function () { var id = $('#teacher').val(); var first_date = $('#jalali-datepicker3').val(); var second_date = $('#jalali-datepicker4').val();

我想将数据导出为视图中所示的
EXCEL
文件,它可以正常工作,但没有正确导出日期,我尝试了如下操作:

 $('#get_hourly_report').click(function () {

        var id = $('#teacher').val();
        var first_date = $('#jalali-datepicker3').val();
        var second_date = $('#jalali-datepicker4').val();
        $(".h_report_icon").addClass('fa fa-spinner fa-spin');
        $.ajax({
            method: "get",
            url: "attendance/getTeacherAttendanceReport/",
            data: {
                'id': id,
                'f_date': first_date,
                's_date': second_date
            },
            success: function (data) {
                $.fn.dataTable.moment('DD/MM/YYYY');
                table = $('#example2').DataTable({

                    destroy: true,
                    "bPaginate": false,
                    dom: 'Bfrtip',
                    bFilter: false,
                    buttons: [
                        {
                            extend: 'excelHtml5',
                            footer: true,
                            customize: (xlsx, config, dataTable) => {
                                let sheet = xlsx.xl.worksheets['sheet1.xml'];
                                let footerIndex = $('sheetData row', sheet).length;
                                let $footerRows = $('tr', dataTable.footer());

                                // If there are more than one footer rows
                                if ($footerRows.length > 1) {
                                    // First header row is already present, so we start from the second row (i = 1)
                                    for (let i = 1; i < $footerRows.length; i++) {
                                        // Get the current footer row
                                        let $footerRow = $footerRows[i];

                                        // Get footer row columns
                                        let $footerRowCols = $('th', $footerRow);

                                        // Increment the last row index
                                        footerIndex++;

                                        // Create the new header row XML using footerIndex and append it at sheetData
                                        $('sheetData', sheet).append(`
                                                    <row r="${footerIndex}">
                                                      ${$footerRowCols.map((index, el) => `
                                                        <c t="inlineStr" r="${String.fromCharCode(65 + index)}${footerIndex}" s="2">
                                                          <is>
                                                            <t xml:space="preserve">${$(el).text()}</t>
                                                          </is>
                                                        </c>
                                                      `).get().join('')}
                                                    </row>
                                                  `);
                                    }
                                }
                            }
                        }
                    ],
                    "processing": true,
                    data: data.teacherAttendanceReport,
                    columns: [
                        {
                            title: 'شماره', render: function (data, type, row, meta) {
                                return meta.row + meta.settings._iDisplayStart + 1;
                            }
                        },
                        {title: 'نام کارمند', data: 'first_name'},
                        {title: 'روز هفته', data: 'persian_name'},
                        {title: 'ماه', data: 'month_name'},
                        {title: 'تاریخ مکمل', data: 'date'},
                        {title: 'ساعت درسی', data: 'full_time'},
                        {title: 'حالت حاضری', data: 'as_persian_name'},

                    ],


                });
                $(".h_report_icon").removeClass('fa fa-spinner fa-spin');
                $('#h_present').html(data.present)
                $('#h_absent').html(data.absent)


            },
            error: function () {

            }
        });
    });
$(“#获取每小时报告”)。单击(函数(){
var id=$('#teacher').val();
var first_date=$('jalali-datepicker3').val();
var second_date=$('jalali-datepicker4').val();
$(“.h_report_icon”).addClass('fa-fa-spinner-fa-spin');
$.ajax({
方法:“获取”,
url:“出席/GetteacherattendaceReport/”,
数据:{
“id”:id,
“f_日期”:第一个f_日期,
's_date':第二个日期
},
成功:功能(数据){
$.fn.dataTable.moment('DD/MM/YYYY');
表=$('#示例2')。数据表({
摧毁:没错,
“bPaginate”:错误,
dom:'Bfrtip',
过滤:错,
按钮:[
{
扩展:“excelHtml5”,
页脚:是的,
定制:(xlsx,配置,数据表)=>{
let sheet=xlsx.xl.worksheets['sheet1.xml'];
让footerIndex=$('sheetData行',sheet).length;
让$footerRows=$('tr',dataTable.footer());
//如果有多个页脚行
如果($footerRows.length>1){
//第一个标题行已经存在,因此我们从第二行开始(i=1)
对于(设i=1;i<$footerRows.length;i++){
//获取当前页脚行
设$footerRow=$footerRows[i];
//获取页脚行列
设$footerRowCols=$('th',$footerRow);
//增加最后一行索引
footerIndex++;
//使用footerIndex创建新的页眉行XML,并将其附加到sheetData
$('sheetData',sheet).附加(`
${$footerRowCols.map((索引,el)=>`
${$(el.text()}
`).get().join(“”)}
`);
}
}
}
}
],
“处理”:对,
数据:data.teacherAttendanceReport,
栏目:[
{
标题:呈现:函数(数据、类型、行、元){
返回meta.row+meta.settings.iDisplayStart+1;
}
},
{标题:'名字',数据:'名字',
{标题:“波斯语名称”},
{标题:'月名',数据:'月名',
{标题:'date',
{标题:“全职”},
{标题:'波斯名字',数据:'波斯名字',
],
});
$(“.h_report_icon”).removeClass('fa-fa-spinner-fa-spin');
$('h#u present').html(data.present)
$('h#u缺席').html(data.缺席)
},
错误:函数(){
}
});
});
当我将导出作为
EXCEL
文件时,如果日期类似于
1400-2-15
,则结果与预期一致。但是如果日期像
1400-02-13
,那么它会像
一样导出


我希望它像
1400-02-13
,如果有人知道问题出在哪里,请帮助我

在HTML头中插入utf-8元标记:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">



我已经添加了这个。行
返回时刻(数据'YYYY-MM-DD')。格式('YYYY-MM-DD')
没有任何作用。您希望日期的格式为
YYYY-MM-DD
,并且您正在使用相同的格式对其进行格式化。问题可能是数据首先不在
YYYY-MM-DD
中,因此矩无法解析它,或者日期列不是第三列。如果您的表格与照片完全相同,那么它就不是第三列。@PouriaMoosavi那么我该怎么做?@Zia Yamin,您是否尝试增加Excel文件中日期导出到的列的宽度?当列宽无法显示完整日期或数字时,Excel将显示
。别忘了投票给对你有用的解决方案…@Raky是的,我投了票,随着我增加专栏,
的数量越来越多。
<meta charset="utf-8">