Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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_Datetime_Momentjs_Datetime Format_Relative Time Span - Fatal编程技术网

Javascript 现在我们要确定已经过去了多少天、几周

Javascript 现在我们要确定已经过去了多少天、几周,javascript,datetime,momentjs,datetime-format,relative-time-span,Javascript,Datetime,Momentjs,Datetime Format,Relative Time Span,我不太擅长处理日期时间。我曾经用一个离子应用程序来操纵时间,但我想实现一些我做不到的事情 我使用了一个管道,我想根据已经过去了多少天,或者是几周、几个月或几年来显示。使用相对时间可以帮助我使用fromNow()方法和momentjs的calendar()。但在我的情况下,我会有多个条件 下面是我的管道的示例代码 transform(value: Date | moment.Moment, dateFormat: string): any { if (moment(value) <

我不太擅长处理日期时间。我曾经用一个离子应用程序来操纵时间,但我想实现一些我做不到的事情

我使用了一个管道,我想根据已经过去了多少天,或者是几周、几个月或几年来显示。使用相对时间可以帮助我使用
fromNow()
方法和momentjs的
calendar()
。但在我的情况下,我会有多个
条件

下面是我的管道的示例代码

transform(value: Date | moment.Moment, dateFormat: string): any {
    if (moment(value) < moment(value).subtract(7, 'days')) {
      return moment(value).format('llll') // Use this format if weeks, months or years has passed
    } else if (moment(value) < moment(value).subtract(1, 'days')) {
      return moment(value).calendar(); // Use calendar time if 1 day has passed
    } else {
      return moment(value).fromNow(); // Use relative time if within 24 hours
    }
  }
transform(值:日期|矩.矩,日期格式:字符串):任意{
如果(力矩(值)<力矩(值).减去(7,‘天’){
返回时刻(值)。格式('llll')//如果周、月或年已经过去,请使用此格式
}否则,如果(力矩(值)<力矩(值).减去(1,'天'){
返回时刻(value).calendar();//如果已过1天,则使用日历时间
}否则{
返回时刻(值).fromNow();//如果在24小时内,则使用相对时间
}
}
如果几秒钟、几分钟或几小时过去了直到24小时,我将使用
fromNow()
方法,但如果几天过去了,我将使用
calendar()
,如果几周、几个月或几年过去了,则使用此
格式('llll')

有人能给我点启示吗


提前感谢。

据我所知,您希望根据某个特定时刻从
到现在的时间做出决定。您似乎有3个案例:>7天,>1天,7天){
console.log(“输出:日期晚于1周”)
}否则,如果(结果>1){
console.log(“输出:日期晚于1天但少于1周”)
}否则{
console.log(“输出:日期晚于1天”)
}
}
好了。:)

函数转换日期(givenDate){
如果(力矩().减去(7,‘天’).valueOf()>力矩(给定数据).valueOf()){
返回力矩(givenDate)。格式('llll');
}else if(矩().减去(1,'days').valueOf()>矩(givenDate.valueOf()){
返回时刻(givenDate).calendar();
}否则{
返回时刻(givenDate).fromNow();
}
}
//当前时间
log(transformDate(newdate());
//此答案发布前8天
日志(转换日期(新日期(1531394211385));
//此答案发布前2天
日志(转换日期(新日期(1531912692803))

不清楚您想要实现什么。请详细说明it@VicJordan编辑它。对不起,是的。这正是我想要的!非常感谢。我只是没有仔细阅读文档,因为它的范围很大。但是如果你真的想用的话。然后再挖深一点。Thankshow我可以每秒返回实时更新吗?我尝试在返回值中添加一个setInterval,但它表示像这样的意外标识符
返回setInterval(矩(值).format('llll'),1000)//如果数周过去了,请使用此格式
您必须调用e.x的
setInterval
中的整个函数。如果您的函数是
某物(inputDate)
,您需要包装整个函数调用:
setInterval(something(inputDate),1000)
请小心清除间隔并确保inputDate变量不会丢失,我不知道ionic framework,但可以使用各种Javascript概念使其工作。
  var currDate = moment.now();
  var dateToTest = moment(val);
  // if dateToTest will always be in past, use currDate as the base to diff, else 
  be prepared to handle the negative outcomes. 
  var result = currDate.diff(dateToTest, 'days')