J'ai besoin du moyen le plus rapide pour obtenir le premier jour de la semaine. Par exemple: c'est aujourd'hui le 11 novembre et un jeudi; et je veux le premier jour de cette semaine, qui est le 8 novembre, et un lundi. J'ai besoin de la méthode la plus rapide pour la fonction de carte MongoDB, des idées?
162
Réponses:
En utilisant la
getDay
méthode des objets Date, vous pouvez connaître le numéro de jour de la semaine (étant 0 = dimanche, 1 = lundi, etc.).Vous pouvez ensuite soustraire ce nombre de jours plus un, par exemple:
la source
diff = d.getDate() - day;
d.setHours(0); d.setMinutes(0); d.setSeconds(0);
Je ne sais pas comment il se compare pour les performances, mais cela fonctionne.
Ou en fonction:
la source
date = new Date(date);
la première ligne dans la fonction getMonday.Découvrez Date.js
la source
Date.parse('last monday');
La réponse de CMS est correcte mais suppose que le lundi est le premier jour de la semaine.
La réponse de Chandler Zwolle est correcte mais tripote le prototype Date.
Les autres réponses qui jouent avec les heures / minutes / secondes / millisecondes sont fausses.
La fonction ci-dessous est correcte et prend une date comme premier paramètre et le premier jour de la semaine souhaité comme deuxième paramètre (0 pour dimanche, 1 pour lundi, etc.). Remarque: l'heure, les minutes et les secondes sont mises à 0 pour avoir le début de la journée.
la source
Cela fonctionnera bien.
la source
J'utilise ça
la source
Cette fonction utilise l'heure actuelle en millisecondes pour soustraire la semaine en cours, puis soustrait une semaine de plus si la date actuelle est un lundi (javascript compte à partir du dimanche).
Je l'ai testé lorsque la semaine s'étend d'un mois à l'autre (et aussi des années), et il semble fonctionner correctement.
la source
Bonsoir,
Je préfère simplement avoir une méthode d'extension simple:
Vous remarquerez que cela utilise en fait une autre méthode d'extension que j'utilise:
Maintenant, si vos semaines commencent le dimanche, passez un "0" pour le paramètre pStartOfWeek, comme ceci:
var mThisSunday = new Date().startOfWeek(0);
De même, si vos semaines commencent le lundi, passez un "1" pour le paramètre pStartOfWeek:
var mThisMonday = new Date().startOfWeek(1);
Cordialement,
la source
Premier jour de la semaine
Pour obtenir la date du premier jour de la semaine à partir d'aujourd'hui, vous pouvez utiliser quelque chose comme ceci:
Ou pour obtenir le dernier jour de la semaine à partir d'aujourd'hui:
* Selon votre fuseau horaire, le début de la semaine ne doit pas forcément commencer le dimanche, il peut commencer le vendredi, samedi, lundi ou tout autre jour sur lequel votre machine est réglée. Ces méthodes expliqueront cela.
* Vous pouvez également le formater en utilisant une
toISOString
méthode comme celle-ci:getLastSunday().toISOString()
la source
setDate () a des problèmes avec les limites de mois qui sont notés dans les commentaires ci-dessus. Une solution de contournement propre consiste à trouver la différence de date à l'aide des horodatages d'époque plutôt que des méthodes (étonnamment contre-intuitives) sur l'objet Date. C'est à dire
la source
Voici ma solution:
Vous pouvez maintenant choisir la date par index de tableau renvoyé.
la source
Un exemple du calcul mathématique uniquement, sans aucune
Date
fonction.la source
une version plus généralisée de ceci ... cela vous donnera n'importe quel jour de la semaine en cours en fonction du jour que vous spécifiez.
la source
Découvrez: moment.js
Exemple:
Bonus: fonctionne aussi avec node.js
la source
moment().startOf('week')
moment().startOf("week")
peut indiquer la date du dimanche précédent, selon les paramètres régionaux. Dans ce cas, utilisez à lamoment().startOf('isoWeek')
place: runkit.com/embed/wdpi4bjwh6rtstartOf()
: momentjs.com/docs/#/manipulating/start-of