我正在尝试将jQuery.Gantt(http://taitems.github.io/jQuery.Gantt/)实现到我正在处理的网站中。我遇到了Date对象的奇怪问题。出于测试目的,我在1月至12月创建了“里程碑”,每个月的开始日期为2012年6月3日。每个月的日期与2013年6月3日相同。
每个开始日期都显示延迟一天(2012年9月17日)。结束日期变得奇怪: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天都是闰年,但此时我还是空白了。
答案 0 :(得分:2)
这可能有点晚了,但对于寻找此问题解决方案的其他人来说,它可能会有用。
也就是说,我刚刚经历了一个类似的问题(日期显示为一天前),经过一些摆弄后,我意识到它与当地时区有关。
基本上,由于我目前在俄罗斯,当地时区是GMT + 4,所以如果我的DateTime字段的值为mm / dd / yyyy 03:59:00 AM,则日期将提前一天显示。但是,只要我将日期设置为mm / dd / yyyy 04:00:00 AM,日期就会在时间线上正确显示。
由于我不会成为进入系统日期的人,并且因为我发现这个“功能”是正确且非常有用的,所以我不会处理日期的处理,但是在用户手册中我将要求入境者始终以GMT格式输入时间,这应该可以防止任何问题。
我希望这有帮助!
祝你好运