moment.js-测试日期是今天,昨天还是一周或两周前 [英] moment.js - test if a date is today, yesterday, within a week or two weeks ago

查看:921
本文介绍了moment.js-测试日期是今天,昨天还是一周或两周前的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用moment.js来确定日期是今天,昨天,1周或更早(2周或更早).

I am trying with moment.js to know if a date is today, yesterday, 1 week ago, or older (2 weeks ago or more).

对于前两种情况,我已经做到了:

I already done that for the first two cases:

var today = moment().startOf('day');
var yesterday = moment().subtract(1, 'days').startOf('day');

if (moment(localTime).isSame(today, 'd')) // today
    // do something
if (moment(localTime).isSame(yesterday, 'd')) // yesterday
    // do something

对吗?

但是,如何检查日期是一周前或更早(例如两周前)?

However, how could I check if a date is a week ago, or older (eg. two weeks ago)?

推荐答案

以下内容可能会有用:

var REFERENCE = moment("2015-06-05"); // fixed just for testing, use moment();
var TODAY = REFERENCE.clone().startOf('day');
var YESTERDAY = REFERENCE.clone().subtract(1, 'days').startOf('day');
var A_WEEK_OLD = REFERENCE.clone().subtract(7, 'days').startOf('day');

function isToday(momentDate) {
    return momentDate.isSame(TODAY, 'd');
}
function isYesterday(momentDate) {
    return momentDate.isSame(YESTERDAY, 'd');
}
function isWithinAWeek(momentDate) {
    return momentDate.isAfter(A_WEEK_OLD);
}
function isTwoWeeksOrMore(momentDate) {
    return !isWithinAWeek(momentDate);
}

console.log("is it today? ..................Should be true: "+isToday(moment("2015-06-05")));
console.log("is it yesterday? ..............Should be true: "+isYesterday(moment("2015-06-04")));
console.log("is it within a week? ..........Should be true: "+isWithinAWeek(moment("2015-06-03")));
console.log("is it within a week? ..........Should be false: "+isWithinAWeek(moment("2015-05-29")));
console.log("is it two weeks older or more? Should be false: "+isTwoWeeksOrMore(moment("2015-05-30")));
console.log("is it two weeks older or more? Should be true: "+isTwoWeeksOrMore(moment("2015-05-29")));

检查 JSFiddle演示 并进行更多测试,以便针对具体情况进行调整,如果需要的话.

Check a JSFiddle demo with more tests, so you can tweak for your exact case, if needed.

这篇关于moment.js-测试日期是今天,昨天还是一周或两周前的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆