首页 > 解决方案 > 在 DataTable 中转换 JSON 日期

问题描述

我有一个 DataTable,它由如下所示的日期填充:"/Date(1523260800000)/",我希望它们看起来像:January 1, 2000

我有一个片段可以在我的代码的不同区域工作,但是当我尝试将它集成到 DataTables 中时它不起作用关于返回 JSON 节点 + 函数的一些事情,整个事情变得很糟糕。

JS 片段:

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

function loadAdmiss() {
    let admissText = admissData.d.results.map(function(val) {
        return {
            "Info": val.info,
            "Date of Admission": val.dateofadmission, function() { // ----- this code block works elsewhere
                let jsonDate = val.dateofadmission;
                let value = new Date(parseInt(jsonDate.replace(/(^.*\()|([+-].*$)/g, ''))
                );
                let dat = value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear();
                return dat;
            },
            "Expires": val.expires
        }
    })

渲染数据表:

    $('#admissions-table').DataTable({
            columns: [
                { data: "Info" },
                { data: "Date of Admission" },
                { data: "Expires" }
            ],
            data: admissText,
            ...

JSON 片段:

{
    "d": {
      "results": [
        {
         ...
          "dateofadmission": "/Date(1523260800000)/",
           ...
           ...

标签: javascriptjqueryjsondatedatatable

解决方案


为了在 2000 年 1 月 1 日转换此“/Date(1523260800000)/”

1)var f=str.split("(")[1]; // split ( an get the second value the number

2) var s=f.split(")")[0]// 拆分另一个 )

3) var d= new date(ParseInt(s))//现在你得到了你的日期,记得解析


推荐阅读