javascript - 使用 javascript 获取两个日期之间的日期列表

标签 javascript node.js

从 JavaScript 有一种方法可以从 MySQL 格式获取两个日期之间的天数列表。我不想为此使用任何库。 这就是我所做的。

function generateDateList(from, to) {

    var getDate = function(date) { //Mysql Format
        var m = date.getMonth(), d = date.getDate();
        return date.getFullYear() + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d);
    }
    var fs = from.split('-'), startDate = new Date(fs[0], fs[1], fs[2]), result = [getDate(startDate)], start = startDate.getTime(), ts, end;

    if ( typeof to == 'undefined') {
        end = new Date().getTime();
    } else {
        ts = to.split('-');
        end = new Date(ts[0], ts[1], ts[2]).getTime();
    }
    while (start < end) {
        start += 86400000;
        startDate.setTime(start);
        result.push(getDate(startDate));
    }
    return result;
}

console.log(generateDateList('2014-2-27', '2014-3-2'));

我在chrome和nodejs上测试了它,结果如下。

[ '2014-02-27',
  '2014-02-28',
  '2014-02-29',
  '2014-02-30',
  '2014-02-31',
  '2014-03-01',
  '2014-03-02' ]

是的大闰年:-D...,我该如何解决这个问题?或者有什么更好的办法吗?

最佳答案

const listDate = [];
const startDate ='2017-02-01';
const endDate = '2017-02-10';
const dateMove = new Date(startDate);
let strDate = startDate;

while (strDate < endDate) {
  strDate = dateMove.toISOString().slice(0, 10);
  listDate.push(strDate);
  dateMove.setDate(dateMove.getDate() + 1);
};

关于javascript - 使用 javascript 获取两个日期之间的日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164005/

相关文章:

JavaScript 无法在 Chrome 中运行

javascript - 如果在输入字段中单击,则保持边栏打开

javascript - JQuery ajax 忽略 url

node.js - npm 私有(private)模块错误

node.js - 我应该如何使用 NodeJS 处理 AWS Lambda 上的 node_modules?

node.js - 如何在不使用for循环的情况下传递变量来请求回调?

javascript - Chrome 上的 CSS div 背景颜色错误?

javascript - 使用 jQuery 从通过 FileReader 上传的 html 文件中提取表格

linux - Node.JS 中的域名

javascript - 如何运行 index.jade 文件?