J'essaie d'utiliser momentjs
pour vérifier si une date donnée est aujourd'hui ou dans le futur.
Voici ce que j'ai jusqu'à présent:
<script type="text/javascript" src="http://momentjs.com/downloads/moment.min.js"></script>
<script type="text/javascript">
var SpecialToDate = '31/01/2014'; // DD/MM/YYYY
var SpecialTo = moment(SpecialToDate, "DD/MM/YYYY");
if (moment().diff(SpecialTo) > 0) {
alert('date is today or in future');
} else {
alert('date is in the past');
}
</script>
Le code évalue ma date (31 janvier 2014) comme une date antérieure.
Une idée de ce que je fais mal?
moment().diff(SpecialToDate)
donnera directement la différence en millisecondes.'days'
n'est pas nécessaire. Cela fonctionnera pour tous les scénarios. SpecialToDate peut être'2018-10-26 00:00:00'
un exemple.Vous pouvez utiliser la
isSame
fonction:la source
startTime
? L'objet date n'a pas deisSame
méthode ...la source
Étant donné que personne ne semble l'avoir encore mentionné, la façon la plus simple de vérifier si un objet de date Moment est dans le passé:
Ou à l'avenir:
Laissez simplement les arguments vides - ce sera par défaut à maintenant.
Il y a aussi
isSameOrAfter
etisSameOrBefore
.NB ceci prend en compte le temps. Si vous ne vous souciez que de la journée, consultez la réponse de Dipendu .
la source
momentObj
dans mon exemple est une instance d'une date de moment. Les documents parlent spécifiquement de la création d'une nouvelle instance (heure actuelle), puis de vérifier si elle est dans le passé, en une seule instruction. Je ne vous suggère pas de fairemoment().isBefore()
ce qui est totalement inutile - pourquoi voudriez-vous vérifier si c'est maintenant dans le passé (ou futur)?Vous pouvez utiliser la
isAfter()
fonction de requête de momentjs:Vérifiez si un moment est après un autre moment.
Si vous souhaitez limiter la granularité à une unité autre que les millisecondes, passez les unités comme deuxième paramètre.
http://momentjs.com/docs/#/query/is-after/
la source
inverser la méthode de moment isBefore pour vérifier si une date est la même qu'aujourd'hui ou à l'avenir comme ceci:
la source
Juste au cas où quelqu'un d'autre en aurait besoin, faites-le:
ou si vous voulez une fonction:
Où date est la date que vous souhaitez vérifier.
Explication
moment(0, "HH")
renvoie le jour d'aujourd'hui à minuit.date1.diff(date2, "days")
renvoie le nombre de jours entre la date1 et la date2.Mettre à jour
Depuis, j'ai trouvé la fonction isSame , qui, à mon avis, est la bonne fonction à utiliser pour déterminer si une date est aujourd'hui:
la source
Pour vérifier si c'est aujourd'hui :
Si nous comparons deux dates qui contiennent également l'heure, les informations
isSame
échoueront évidemment.diff
échouera dans le cas où les deux dates s'étendent sur le nouveau jour:Je pense que la meilleure façon, même si elle n'est pas rapide et courte, est la suivante:
Pour vérifier si c'est dans le futur :
Comme suggéré également par d'autres utilisateurs, la
diff
méthode fonctionne.la source
Si vous avez seulement besoin de savoir lequel est le plus gros, vous pouvez également les comparer directement:
J'espère que cela t'aides!
la source
si firstDate est le même ou après (futur) secondDate return true else return false. Toda est firstDate = new Date ();
Il existe des exemples isSame, isBefore et isAfter for day compare moment;
la source
Utilisez le plus simple pour vérifier la date future
la source
Et puis il suffit de l'utiliser en ligne ceci:
la source
Sélectionnez hier pour vérifier les jours passés ou non avec l'aide de
moment().subtract(1, "day");
Référence: - http://momentjs.com/docs/#/manipulating/subtract/
la source
Si nous voulons une différence sans l'heure, vous pouvez obtenir une date différente (uniquement la date sans l'heure) comme ci-dessous, en utilisant le format du moment.
Comme, j'étais confronté à un problème avec la différence en faisant;
Donc, est venu avec suivre;
const dateValidate = moment(moment().format('YYYY-MM-DD')).diff(moment([YOUR SELECTED DATE HERE]).format('YYYY-MM-DD'))
N'hésitez pas à commenter s'il y a quelque chose à améliorer.
Merci,
la source
je le voulais pour autre chose mais j'ai finalement trouvé une astuce que vous pouvez essayer
somedate.calendar(compareDate, { sameDay: '[Today]'})=='Today'
la source
vérifier avec les éléments suivants:
il revient en quelques secondes ..
Si vérifiera comme condition de 2 minutes alors
la source
La réponse la plus simple sera:
Il vérifiera avec la valeur de minuit et retournera un résultat précis. Cela fonctionnera également lorsque le décalage horaire entre deux dates est également inférieur à 24 heures.
la source