web-dev-qa-db-fra.com

Moment.js Vérifier qu'une date est aujourd'hui

Comment puis-je vérifier qu'une date est bien aujourd'hui (la même date) plutôt que la différence entre les heures d'une journée?

J'ai trois horodatages comme exemples, l'un est aujourd'hui (22/07/14) et les deux autres hier (21/07/14)

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

J'ai essayé cela mais tous retournent faux:

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

Vous pouvez utiliser isSame(), limitant la granularité à un jour:

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

Vous pouvez utiliser les méthodes startOf et isSame ensemble pour atteindre votre objectif ici.

L'exécution de startOf('day') sur un objet moment définira ce moment sur - vous l'avez deviné - le début de la journée où il se produit. Si vous convertissez chacun de vos horodatages à l'aide de cette méthode, vous pouvez facilement les comparer les uns aux autres à l'aide de isSame().

Par exemple:

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

Vous pouvez essayer ceci

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

Vous pouvez essayer ça,

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

Voici le démo

1
super