Date retrieved from excel file is being set as 00-00-0000 when entered into custom table via Ajax

Viewed 59

I'm creating a plugin for WordPress that adds in a custom table, and I need to import data into the table from an Excel file, I used Sheetjs and ajax to do this and for the most part it was successful however the date field keeps being set as 00-00-0000.

What is in the Excel file:

What is in the Excel file

What the Database is echoing back:

What the Database is echoing back

Here is my javascript code:

    jQuery(document).ready( function(){
    jQuery('.importsubmit').click(function () {
    
    if (window.FileReader && window.Blob) {
      // if FileReader and Blob are supported by the browser then
      
      // get file from #transportationtableimport
      var file = jQuery('#transportationtableimport').prop('files')[0];
      // set filename
      var filename = file.name;
      // get file extension
      var extension = filename.split('.').pop();
      
      if (extension == 'xlsx' || extension == 'xls') {
        
        // if file extension equals csv then
        // create new FileReader
        var fileReader = new FileReader();
        
        // FileReader onload function
        fileReader.onload = function (e) {
          var data = fileReader.result;
          var book = XLSX.read(data, { type: 'binary', cellDates: true, cellNF: false, cellText: false});
          var sheetnum = 1;
          
          book.SheetNames.forEach(function(sheetname) {
            var sheet = XLSX.utils.sheet_to_json(book.Sheets[sheetname], {header:1});
            // pass sheet to loadxlsxcsvfile function
            loadtransxlsxfile(sheet);
          });
        };
        
        // read file
        fileReader.readAsBinaryString(file);
      }
    }
  });
});
    function loadtransxlsxfile(sheet) {
  var d;
 
  
  for (var i = 1; i <= sheet.length-1; i++) {
    var x = 0;
    var cells = sheet[i];
    
    var y = cells[3];
      
    d = { 
      action: 'inserttranscsv',
      applDate: y
    }
    
    // inserttranscsv ajax call
    jQuery.ajax({
      url: ajax_object.ajaxurl,
      type: 'POST',
      data: d
    })
    
  }
}

Here is my php code:

function inserttranscsv() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'transportationtable';
    $applDate = $_POST['applDate'];
    $failed = 0;
    $udata = array(); 
    $udata['applDate'] = $applDate;
    $updated = $wpdb->insert( $table_name, $udata);
    if ( $updated == false ) {
      $failed += 1;
    }
      
      
    if ($failed < 1) {
      wp_send_json_success(array('good' => true, 'date' => $applDate));
    } else {
      wp_send_json_success(array('good' => false));
    }
  }
0 Answers
Related