Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 混乱的循环在瞬间js的日期_Javascript_Date_Momentjs - Fatal编程技术网

Javascript 混乱的循环在瞬间js的日期

Javascript 混乱的循环在瞬间js的日期,javascript,date,momentjs,Javascript,Date,Momentjs,我正在编写一小段javascript,它将帮助我获得两个日期(包括今天)之间的值 这是我的密码 var beforeSevenDays=时刻(Date.now()-7*24*3600*1000).format('YYYY-MM-DD'); var i=0; 对于(var m=moment(beforeSevenDays);m.diff(moment(Date.now()).local('in'),'days')您的代码的问题是您正在比较完整日期,moment(Date.now())创建一个包含

我正在编写一小段javascript,它将帮助我获得两个日期(包括今天)之间的值

这是我的密码

var beforeSevenDays=时刻(Date.now()-7*24*3600*1000).format('YYYY-MM-DD');
var i=0;

对于(var m=moment(beforeSevenDays);m.diff(moment(Date.now()).local('in'),'days')您的代码的问题是您正在比较完整日期,
moment(Date.now())
创建一个包含日期和时间的时间点,因此您的输出取决于您执行它的时间

我建议使用:

通过将原始力矩设置为一个时间单位的起点来对其进行变异

这里有一个活样本:

var beforeSevenDays=moment().subtract(7,'天').format('YYYY-MM-DD');
var today=时刻().startOf('day');
var i=0;

对于(var m=时刻(七天之前);m.diff(今天,'days')来说,混淆似乎源于
时刻
如何构建
的差异。 通过只减去日期部分,它看起来像是不同的一天,但是你要问的是
moment
diff
日期。那么,moment的作用是找出某些时间单位的差异,并将它们转换为天

正如您在下面的代码段中所看到的,天差是0,但小时差不是0。 因此,您需要将时间冻结到某个时间,例如,
startOf('day')

var beforeSevenDays=时刻(Date.now()-7*24*3600*1000).format('YYYY-MM-DD');
var i=0;

for(var m=moment(beforeSevenDays);m.diff(moment(Date.now()).local('in'),'days')这里的问题是,moment diff函数by day为今天和明天的日期返回0。因此,当条件小于或等于0时,它在for循环中显示的原因

var moment =require('moment');

var beforeSevenDays = moment().subtract(7, 'days').format('YYYY-MM-DD');
var i = 0;

for (var m = moment(beforeSevenDays); m.diff(moment(Date.now()), 'days') <0 || m.isSame(moment(), 'day'); m.add(1, 'days')) {
    console.log("i: " + i + " " + m.format('YYYY-MM-DD'));
    i += 1;
}
var-moment=require('moment');
var beforeSevenDays=矩()。减去(7,'天')。格式('YYYY-MM-DD');
var i=0;

对于(var m=moment(beforeSevenDays);m.diff(moment(Date.now(),'days'),在旁注中给出了很好的建议!