Javascript 混乱的循环在瞬间js的日期
我正在编写一小段javascript,它将帮助我获得两个日期(包括今天)之间的值 这是我的密码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())创建一个包含
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'),在旁注中给出了很好的建议!