web-dev-qa-db-ja.com

Moment.js日付が今日であることを確認

1日の時間の差ではなく、実際に今日の日付(同じ日付)を確認するにはどうすればよいですか?

例として3つのタイムスタンプがあり、1つは今日(22/07/14)で、他の2つは昨日(21/07/14)です

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);
33
Asa Carter

isSame()を使用して、粒度を1日に制限できます。

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
}
95
Vasyl Demin

ここで目標を達成するために、startOfメソッドとisSameメソッドを一緒に使用できます。

瞬間オブジェクトで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
}
16
Cameron

これを試すことができます

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

これを試すことができます、

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");
}

これはデモ

1
super