【问题标题】:Converting date in JSON and displaying it in a DataTable在 JSON 中转换日期并将其显示在 DataTable 中
【发布时间】:2019-02-14 22:30:22
【问题描述】:

我有一个本地 JSON 文件,该文件正在呈现到 DataTable 中。表中的所有内容都很好,除了日期呈现如下:/Date(1350028800000)/ (10/12/2012)。

我查找了 this thread 关于转换数据的信息,但基于信息如何呈现到 DataTable 中,我不确定我将如何进行。对这个有什么想法吗?

JS sn-p:

import $ from 'jquery';
import admissData from '../JSON/atty-admiss.json';
import DataTable from 'datatables.net';

function loadAdmiss() {
    let admissText = admissData.d.results.map(function(val) {
        return {
            "Status": val.admissionstatus,
            // "Date of Admission": val.dateofadmission,
            "Expires": val.expires,
            "Classification": val.classification
        }
    })
    let admissDate = admissData.d.results.map(function(val) {
        let newDate = new Date(admissDate) { //// ?
            return val.dateofadmission
        }
    })

    $('#admissions-table').DataTable({
        columns: [
            { data: "Status" },
            { data: "Date of Admission" }, // ------ DT's method of injecting relevant JSON data into each column
            { data: "Expires" },
            { data: "Classification" }
        ],
        data: admissText, // ---------- how the JSON data enters DT
        lengthChange: false,
        paging: true,
        pagingType: "full_numbers"
    });

}

loadAdmiss();

【问题讨论】:

  • 您的实际问题是什么?引用的帖子显示了如何将 MS JSON 日期转换为 ECMAScript 日期。您是在问如何将其应用到您的代码中?

标签: javascript jquery json date datatable


【解决方案1】:

这有帮助吗?

var admissData = {
    d: {
        results: [
            '/Date(1350028800000)/',
            '/Date(1550185211515)/',
        ]
    }
};


var parseMicorsoftFormat = function(weirdDateFormat) {
    if(typeof weirdDateFormat === 'string') { //lets assume we have a string to work with 
        var extractedData = !!weirdDateFormat.match(/\d+/g) ? weirdDateFormat.match(/\d+/g)[0] : null;
        if(extractedData) {
            return new Date(parseInt(extractedData)).toLocaleString().match(/[^,]*/)[0];
        }else {
            return "No numbers found"
        }
    }else {
        return "Wrong Format"
    }
};

admissData.d.results = admissData.d.results.map(date => parseMicorsoftFormat(date));

【讨论】:

  • 欢迎来到 Stack Overflow!感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation would greatly improve its long-term value 通过展示为什么这是一个很好的解决问题的方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
相关资源
最近更新 更多