Amay1024 2018-12-26 17:05 采纳率: 0%
浏览 1128

jquery gantt editor甘特图,json数据中的start和end参数,页面中显示的日期和传输的完全不一致

jquery gantt editor,json数据中的start和end参数,均调整为13位的时间戳。页面中显示的日期和传输的完全不一致,
原因是duration,甘特图会根据开始时间(start)和持续时间(duration)来计算结束日期,计算的结果不包含周六日,
如何让结束日期显示为后台传输的值,而不是显示开始时间和持续时间的计算结果???
急!!!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 13:39
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,你需要修改你的甘特图编辑器的配置,以使用正确的格式来表示结束日期。这通常涉及到在JSON数据中定义一个特定的字段或属性,用于存储甘特图的实际结束日期。

    首先,在你的甘特图编辑器的配置文件中(例如gantt.json),添加一个新的字段来存储甘特图的结束日期:

    {
      "config": {
        // ...
        "fields": {
          // ...
          "endDate": {
            "type": "date",
            "format": "yyyy-MM-dd"
          }
        },
        // ...
      }
    }
    

    然后,当用户将甘特图的数据发送到服务器时,你应该将这个新的字段添加到JSON对象中,并确保它被正确地解析和处理。例如,如果你正在使用Node.js,你可以这样做:

    const Gantt = require('gantt');
    const config = require('./gantt.json');
    
    const gantt = new Gantt(config);
    
    // 在这里,你可以在甘特图的`onLoad()`函数中添加逻辑来更新结束日期。
    // 这里是一个简单的示例:
    function updateEndDate() {
      const data = JSON.parse(window.location.href.match(/data=(.*?);/)[1]);
      const endDateField = data.endDate;
      const startDateField = data.startDate;
    
      if (endDateField && startDateField) {
        // 更新甘特图的结束日期
        gantt.update({ [endDateField]: new Date(`${startDateField} ${endDateField}`) });
      } else {
        console.log(`Missing required fields: ${endDateField}, ${startDateField}`);
      }
    }
    
    updateEndDate();
    

    在这个例子中,我们检查了是否有startDateendDate字段,如果两者都存在,我们就更新甘特图的结束日期。否则,我们会打印一条错误消息。

    请注意,你需要根据你的具体需求调整这段代码。例如,你可能需要处理不同的日期格式,或者处理不同类型的甘特图数据。

    评论

报告相同问题?