我有日期数据。它可以是Mysql数据,Java数组列表或javascript json数组。
[
{
start=2015-07-02,
id=3
},
{
start=2015-07-03,
id=4
},
{
start=2015-07-06,
id=5
},
{
start=2015-07-07,
id=8
}
]
我想和#34; 2015-07-02"," 2015-07-03~2015-07-06"," 2015-07-07&# 34 ;. 如果日期与日期之间有空白日期,我想制作连接字符串,如" 2015-07-03~2015-07-06"。
而且,我还使用MySql,Java Spring,HTML,jQuery ..... 哪个部分适合于有效地建立连接日期字符串。 我需要你的帮助!
答案 0 :(得分:1)
您可以检查连续日期之间的差异(以毫秒为单位),以检查是否存在超过一天的差异。假设日期按递增顺序排序(从最早到最晚)并且没有重复,如果连续日期之间的差异不是一天,那么我们可以假设它确定了日期范围。
您可以找到一些打印完成此操作的JavaScript代码。
var dates = [{ start:'2015-07-02', id:3 }, { start:'2015-07-03', id:4 }, { start:'2015-07-06', id:5 }, { start:'2015-07-07', id:8 }];
var dateRangeString = '';
for ( var i = 0; i < dates.length; i++) {
if (i === dates.length-1) {
dateRangeString += '"' + dates[i].start + '"';
} else {
var currentDate = new Date(dates[i].start);
var nextDate = new Date(dates[i+1].start);
if (nextDate.getTime() - currentDate.getTime() == 86400000) {
dateRangeString += '"' + dates[i].start + '", ';
} else {
dateRangeString += '"' + dates[i].start + ' ~ ' + dates[i+1].start + '", ';
i++;
}
}
}
// dateRangeString has your dates and date ranges.
// "2015-07-02", "2015-07-03 ~ 2015-07-06", "2015-07-07"