Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/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 失去我的“爱”;“差别”;使用moment.js时的值_Javascript_Momentjs - Fatal编程技术网

Javascript 失去我的“爱”;“差别”;使用moment.js时的值

Javascript 失去我的“爱”;“差别”;使用moment.js时的值,javascript,momentjs,Javascript,Momentjs,我不知道发生了什么,我有我的算法,它接收一个 时间戳,我将它与一个瞬间进行比较。现在()日期。然后使用diff在变量中指定正确的日期 但是,由于一个模糊的原因,我在第一个if之后丢失了diff值,我尝试了一个受影响的值,并且每次调用diff函数,但它仍然有问题 var timS={“1”:149989780000,“2”:1500339840000,“3”:1501081920000,“4”:1501323720000,“5”:1532912460000,“6”:149989780000,“7

我不知道发生了什么,我有我的算法,它接收一个

时间戳
,我将它与一个瞬间进行比较。现在()日期。然后使用
diff
在变量中指定正确的日期

但是,由于一个模糊的原因,我在第一个
if
之后丢失了diff值,我尝试了一个受影响的值,并且每次调用
diff
函数,但它仍然有问题

var timS={“1”:149989780000,“2”:1500339840000,“3”:1501081920000,“4”:1501323720000,“5”:1532912460000,“6”:149989780000,“7”:149994196000,“8”:1500339840000,“9”:1501081920000,“10”:1501323720000,“11”:1532912460000};
对于(变量i=1;i<12;i++)
{
日志(“日期:+testDate(timS[i],i));
}
函数testDate(时间戳,i){
var日=时刻(时间戳);
var a=力矩。现在();
var diff=日差(a,“日”);
log(“在此处输入我的差异值:”+diff+”,步骤:“+i”);
var参数;
如果(差异<7&&differ>0)
{
返回日期.格式('dddd');
}
如果(差===0)
{
返回日期.格式(“[今天]dddd”;
}
}否则{
var param2=day.format('L');
返回参数2;
}

}
您的代码的问题是,
day
粒度以天为单位给出差异,但是
0
天差异的两个时刻可能不在同一天。例如:

moment().diff( moment().subtract(21, 'h'), 'd') // 0
moment().isSame( moment().subtract(21, 'h'), 'd') // false until 21
因此,我建议使用以下工作示例代替
diff

var timS={“1”:149989780000,“2”:1500339840000,“3”:1501081920000,“4”:1501323720000,“5”:1532912460000,“6”:149989780000,“7”:149994196000,“8”:1500339840000,“9”:1501081920000,“10”:1501323720000,“11”:1532912460000};
对于(变量i=1;i<12;i++)
{
日志(“日期:+testDate(timS[i],i));
}
//TestDate用于循环中,以解析所有时间戳
函数testDate(时间戳,i){
var日=时刻(时间戳);
var now=力矩();
if(day.isname(现在是“day”)){
return day.format(“[Today]dddd”);
}else if(day.isname(现在是“week”)){
返回日期.格式('dddd');
}否则{
返回日期。格式('L');
}
};

提供一个复制问题的fiddle或plunker。我第一次使用fiddle时,不确定它是否真的起作用……你的fiddle不起作用,因为你函数中的
timeStamp
参数正在替换你最初创建的
timeStamp
变量。因此,矩正在为
取消定义创建一个新的时间ned
,它的值与现在的
相同。不确定这是否是真实代码中的问题…不清楚你在问什么,你的代码应该做什么?你的问题是什么?请尝试修复你的代码片段和/或你的小提琴(删除
$scope
,并添加像矩.js这样的外部资源)为了使其可运行。此外,请提供一些输入(
timeStamp
)样本与预期结果一致。小提琴已更新为我的主要帖子,希望我比第一次更清楚。如果没有,请告诉我。在小提琴中,您将在控制台中看到我的问题,我今天收到了两个
,两天不同,当然我更喜欢今天的
和明天的