怎样输出两个日期之间的日期

我能得到了两个时间点,比如2017/02/01~2017/02/07,我想输出他们之间的全部数据怎样弄啊

阅读 3.4k
5 个回答
function getDates(startDate, endDate) {
    const msOfDay = 1000 * 60 * 60 * 24;
    const zoneOffset = -startDate.getTimezoneOffset() * 60 * 1000;
    const startMs = Math.floor(startDate.getTime() / msOfDay) * msOfDay;
    const endMs = Math.floor(endDate.getTime() / msOfDay) * msOfDay;
    const dates = [];
    for (let i = startMs; i <= endMs; i += msOfDay) {
        dates.push(new Date(i));
    }
    return dates;
}

console.log(getDates(new Date("2017-1-1Z"), new Date()));
public static void main(String[] args) throws UnsupportedEncodingException, ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date endDate = sdf.parse("2017/02/07");
    Date item = sdf.parse("2017/02/01");
    while (0 != item.compareTo(endDate)) {
        System.out.println(sdf.format(item));
        item = org.apache.commons.lang.time.DateUtils.addDays(item, 1);
    }
}

可以先弄一个连续日期对照表、

也就是一个数组对象、每一个日期的列表对象做对比、

标记、然后截取就可以了

只提供思路、纯手打

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题