J'ai un today = new Date();
objet. J'ai besoin du premier et du dernier jour de la semaine en cours. J'ai besoin des deux variantes pour dimanche et lundi comme jour de début et de fin de la semaine. Je suis un peu confondu maintenant avec un code. Pouvez-vous m'aider?
javascript
date
Petya petrov
la source
la source
var first = curr.getDate() - curr.getDay() +1;
var lastday = new Date(curr.setDate(first.getDate()+6)).toUTCString();
var curr = new Date('2014-10-01T00:00:00'); // get current date var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week var last = first + 6; // last day is the first day + 6 firstday = new Date(curr.setDate(first)).toUTCString(); lastday = new Date(curr.setDate(curr.getDate()+6)).toUTCString();
corrigé le code de @ RichardN, qui a une petite erreurSoyez prudent avec la réponse acceptée, elle ne règle pas l'heure sur 00:00:00 et 23:59:59, vous pouvez donc avoir des problèmes.
Je recommande d'utiliser Moment.js pour gérer les dates. Pour votre cas:
Ce n'est qu'un petit cas d'utilisation, c'est vraiment simple de faire beaucoup d'opérations complexes.
Vous pouvez en savoir plus ici: http://momentjs.com/
la source
var startOfWeek = moment().startOf('isoweek').toDate();
var endOfWeek = moment().endOf('isoweek').toDate();
Vous pouvez également utiliser les lignes de code suivantes pour obtenir la première et la dernière date de la semaine:
J'espère que ce sera utile.
la source
Voici un moyen rapide d'obtenir le premier et le dernier jour, quel que soit le jour de début. sachant que:
1 jour = 86 400 000 millisecondes.
Les valeurs des dates JS sont en millisecondes
Recette: déterminez le nombre de jours que vous devez supprimer pour obtenir le jour de début de votre semaine (multipliez par 1 jour de millisecondes). Tout ce qui reste après cela est d'ajouter 6 jours pour obtenir votre jour de fin.
la source
L'excellente (et immuable) bibliothèque date-fns gère cela de la manière la plus concise:
Le jour de début par défaut de la semaine est dimanche (0), mais il peut être changé en lundi (1) comme ceci:
la source
Tu pourrais faire quelque chose comme ça
Où
startDay
est un nombre de 0 à 6 où 0 signifie dimanche (c'est-à-dire 1 = lundi, 2 = mardi, etc.).la source
SetDate
définit le jour du mois. L'utilisationsetDate
au début et à la fin du mois entraînera une mauvaise semaineSi vous définissez la date sur 01-juil.-2014, le premier jour sera le 29 juin 2014 et le dernier jour le 05 juin 2014 au lieu de 05 juillet 2014.
Alors surmontez ce problème que j'ai utilisé
la source
Cela fonctionne à travers les changements d'année et de mois.
la source
Je recommande d'utiliser Moment.js pour de tels cas. J'avais des scénarios où je devais vérifier l'heure de la date actuelle, cette semaine, ce mois et cette heure de la date des trimestres. Ci-dessus, une réponse m'a aidé alors j'ai pensé à partager le reste des fonctions également.
Simplement pour obtenir l'heure de la date actuelle dans un format spécifique
La semaine commence à partir du dimanche et se termine le samedi si nous utilisons simplement «semaine» comme paramètre pour la fonction endOf, mais pour obtenir le dimanche comme fin de semaine, nous devons utiliser «isoweek».
J'ai choisi ce format selon mes besoins. Vous pouvez modifier le format selon vos besoins.
la source
* date actuelle == 30.06.2016 et le lundi est le premier jour de la semaine.
Cela fonctionne également pendant différents mois et années. Testé avec la suite qunit:
la source
Cela sera utile pour n'importe quel scénario de date.
la source
La méthode de krtek est erronée, j'ai testé ceci
Ça marche
la source
Bien que la question semble obsolète, je dois signaler un problème.
Question: Que se passera-t-il au 1er janvier 2016?
Je pense que la plupart des solutions ci-dessus calculent le début de la semaine comme 27.12.2016. Pour cette raison, je pense que le calcul correct devrait être simplement comme ci-dessous;
la source
Bonne suggestion mais vous avez eu un petit problème hier. Vous devriez le changer en:
la source
L'approche du moment a fonctionné pour moi pour tous les cas (même si je n'ai pas testé les limites comme la fin d'année, les années bissextiles). Seule correction dans le code ci-dessus est que le paramètre est "isoWeek", si vous souhaitez démarrer la semaine à partir du lundi.
la source
En utilisant simplement du javascript pur, vous pouvez utiliser la fonction ci-dessous pour obtenir le premier jour et le dernier jour de la semaine avec un jour de réglage libre pour le début de la semaine.
Le dernier jour de la semaine est juste 6 jours après le premier jour de la semaine
Tester:
la source
JavaScript
Manuscrit
la source
Nous avons ajouté le code jquery qui montre la semaine en cours du lundi au dimanche.
la source
Une vieille question avec beaucoup de réponses, donc une autre ne sera pas un problème. Quelques fonctions générales pour obtenir le début et la fin de toutes sortes d'unités de temps.
Pour startOf et endOf week, le jour de début de la semaine est défini par défaut sur dimanche (0) mais n'importe quel jour peut être dépassé (lundi - 1, mardi - 2, etc.). N'utilise que le calendrier grégorien.
Les fonctions ne modifient pas la date source, donc pour voir si une date est dans la même semaine qu'une autre date (semaine commençant le lundi):
ou dans la semaine en cours commençant le dimanche:
la source
Petit changement à la réponse @Chris Lang. si vous voulez que le lundi soit le premier jour, utilisez ceci.
Merci @Chris Lang
la source