Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何获得没有时区的简单日期_Javascript_Arrays_Date_Date Format - Fatal编程技术网

JavaScript:如何获得没有时区的简单日期

JavaScript:如何获得没有时区的简单日期,javascript,arrays,date,date-format,Javascript,Arrays,Date,Date Format,我有一个在日期范围内生成随机日期的代码,该代码为我提供了日期,当记录时,生成以下格式: 2019年9月25日星期三05:00:00 GMT+0500(巴基斯坦标准时间) 我只想得到没有时区和日期的日期,具体如下: 2019-09-25 我正在尝试使用以下代码获取指定日期之间的随机日期: var startDate = new Date("2019-08-26"); //YYYY-MM-DD var endDate = new Date("2019-09-25"); //YYYY-

我有一个在日期范围内生成随机日期的代码,该代码为我提供了日期,当记录时,生成以下格式:

2019年9月25日星期三05:00:00 GMT+0500(巴基斯坦标准时间)

我只想得到没有时区和日期的日期,具体如下:

2019-09-25

我正在尝试使用以下代码获取指定日期之间的随机日期:

    var startDate = new Date("2019-08-26"); //YYYY-MM-DD
    var endDate = new Date("2019-09-25"); //YYYY-MM-DD

    var getDateArray = function(start, end) {
        var arr = new Array();
        var dt = new Date(start);
        while (dt <= end) {
            arr.push(new Date(dt));
            dt.setDate(dt.getDate() + 1);
        }
        return arr;
    }

    var dateArr = getDateArray(startDate, endDate);


    function shuffle(arra1) {
        var ctr = arra1.length, temp, index;

    // While there are elements in the array
        while (ctr > 0) {
           // Pick a random index
            index = Math.floor(Math.random() * ctr);
            // Decrease ctr by 1
            ctr--;
            // And swap the last element with it
            temp = arra1[ctr];
            arra1[ctr] = arra1[index];
            arra1[index] = temp;
        }
        return arra1; }

    console.log(shuffle(dateArr));
var startDate=新日期(“2019-08-26”)//YYYY-MM-DD
var endDate=新日期(“2019-09-25”)//YYYY-MM-DD
var getDateArray=函数(开始、结束){
var arr=新数组();
var dt=新日期(开始);
while(dt0){
//选择一个随机索引
索引=Math.floor(Math.random()*ctr);
//将ctr减少1
ctr--;
//并用它交换最后一个元素
温度=arra1[ctr];
arra1[ctr]=arra1[index];
arra1[索引]=温度;
}
返回arra1;}
console.log(shuffle(dateArr));

这不是一个重复的问题,因为我试图实现不同的和非常具体的格式化

使用
.toISOString()
.substr()
。例如:

var dt=新日期(“2019-09-25”);

console.log(dt.toISOString().substr(0,10));//2019-09-25
一种解决方案是通过自定义格式化函数(即
formatDate()
)映射
arra1
的每个项目,其中
.getDate()
.getMonth()
.getYear()
用于填充格式化字符串:

function formatDate(date) {
  const year = date.getFullYear();
  /* getMonth returns dates from 0, so add one */
  const month = date.getMonth() + 1;
  const day = date.getDate();

  return `${year}-${month < 10 ? '0' : ''}${ month }-${ day < 10 ? '0' : '' }${day}`
}
var getDates=函数(开始日期、结束日期){
var日期=[],
当前日期=开始日期,
addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
};

虽然(currentDate可能的副本您应该使用moment.js。这些文档很广泛,但它可以完全满足您的需要。@Igor这不是一个真正的副本;最重要的答案集中在如何实现与OP尝试获取的格式完全不同的格式。您阅读了文档中的日期吗?@Igor我已经应用了该解决方案,但它没有它给了我以下错误:TypeError:dateArr.toISOString不是一个函数
dateArr
是一个数组。
.toISOString
Date
对象的方法,而不是数组的方法。您需要在特定日期调用它,而不是在日期数组中调用它。
var getDates = function(startDate, endDate) {
    var dates = [],
        currentDate = startDate,
        addDays = function(days) {
            var date = new Date(this.valueOf());
            date.setDate(date.getDate() + days);

            return date;
    };

    while (currentDate <= endDate) {
        dates.push(currentDate);
        currentDate = addDays.call(currentDate, 1);
   }

        return dates;
    };

// Usage 
var dates = getDates(new Date(2019, 10, 22),
    new Date(2019, 11, 25));
dates.forEach(function(date) {
    console.log(date);
});