【问题标题】:jQuery.Gantt Date issuesjQuery.Gantt 日期问题
【发布时间】:2013-06-03 18:08:12
【问题描述】:

我正在尝试将 jQuery.Gantt (http://taitems.github.io/jQuery.Gantt/) 实现到我正在开发的网站中。我在 Date 对象上遇到了一个奇怪的问题。出于测试目的,我在 1 月 - 12 月创建了“里程碑”,每个里程碑的开始日期都是该月 - 2012 年 16 日。每个里程碑的结束日期都相同,即 2013 年 6 月 3 日。

每个开始日期都显示晚一天(MONTH - 17, 2012)。结束日期变得奇怪:1 月、2 月、11 月和 12 月都在时间线中的正确时间点结束,即 2013 年 6 月 3 日。夹在中间的八个月都在 2013 年 6 月 4 日晚一天结束。

我已经完成了我的日期对象的规范,我的函数正在以正确的格式构建它们:

_getDatesforMilestone = function(milestone){
    var testData = [];
    var toDate = milestone.completeDate.split("-");
    var fromDate = milestone.originalDate.split("-");

    toDate = new Date(toDate[0], toDate[1]-1, toDate[2]);
    fromDate = new Date(fromDate[0], fromDate[1]-1, fromDate[2]);

    testData = [
        {"from": "/Date(" + fromDate.getTime() + ")/", "to": "/Date(" + toDate.getTime() + ")/", "desc": "", "label": milestone.title, "customClass": "ganttDefault " + milestone.id + ""}  
    ];

    return testData
},

有没有其他人遇到过这个问题,或者知道为什么中间的 8 个月会这样回来?突然想到这几个月的 30/31 天,甚至去年是闰年,但我现在一头雾水。

【问题讨论】:

    标签: jquery datetime formatting gantt-chart


    【解决方案1】:

    这可能有点晚了,但它可能对寻找此问题的解决方案的其他人有用。

    也就是说,我刚刚遇到了类似的问题(日期显示为前一天),经过一番摆弄后,我意识到这与当地时区有关。

    基本上,由于我目前在俄罗斯,当地时区是 GMT+4,所以如果我的 DateTime 字段的值为 mm/dd/yyyy 03:59:00 AM,则日期将提前一天显示。但是,只要我将日期设置为 mm/dd/yyyy 04:00:00 AM,日期就会正确显示在时间线上。

    由于我不是将日期输入系统的人,而且我发现这个“功能”是正确且非常有用的,我不会摆弄日期的处理,但在用户手册中我将要求输入人员始终以 GMT 格式输入时间,这样可以防止出现任何问题。

    我希望这会有所帮助!

    最好的问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多