Moment.js检查日期是今天

时间:2014-07-22 09:34:20

标签: javascript date momentjs

如何检查日期实际上是今天(同一天),而不是一天中的小时数之间的差异?

我有三个时间戳作为示例,一个是今天(2014年7月22日),另外两个是昨天(2014年7月21日)

1406019110000 // today
1405951867000 // yesterday
1405951851000 // yesterday

我试过这个,但都返回false:

timestamp = moment.tz(timestamp, tz.name());    
var today = moment('DD/MM/YYYY').isAfter(timestamp, 'DD/MM/YYYY');
console.log(today);

5 个答案:

答案 0 :(得分:94)

您可以使用isSame(),将粒度限制为一天:

var today = moment(1406019110000);
var yesterday = moment(1405951867000);

if (today.isSame(yesterday, 'd')) {
    // They are on the same day
} else {
    // They are not on the same day
}

答案 1 :(得分:16)

您可以同时使用startOfisSame方法来实现目标。

在片刻对象上运行startOf('day')会将那一刻设置为 - 你猜对了 - 它发生的那一天的开始。如果您使用此方法转换每个时间戳,则可以使用isSame()轻松地将它们相互比较。

例如:

var today = moment(1406019110000);
var yesterday = moment(1405951867000); 

if (today.startOf('day').isSame(yesterday.startOf('day'))) {
    // They are on the same day
} else {
    // They are not on the same day
}

答案 2 :(得分:9)

你可以试试这个

moment().isSame(moment(timestamp), 'day')

答案 3 :(得分:1)

你可以试试这个,

var today = 1406019110000; // today
var yesterday = 1405951867000; // yesterday

checkToday(today);
checkToday(yesterday);

function checkToday(timestamp)
{
    if (moment(timestamp).format('DD/MM/YYYY') == moment(new Date()).format('DD/MM/YYYY'))
        alert('true');
    else
        alert("false");
}

以下是 demo

答案 4 :(得分:0)

检查日期的时刻是今天:

let dateStr = '2019-12-03 11:23';
/**
 * to check above date string is today use **isSame()**
 */
const status = moment(dateStr).isSame(moment(), 'day');  // O/P : **true**