Comment obtenir le premier et le dernier jour de la semaine en JavaScript
J'ai today = new Date();
objet. J'ai besoin d'obtenir le premier et le dernier jour de la semaine en cours. J'ai besoin des deux variantes pour le dimanche et le lundi de début et de fin jour de la semaine. Je suis un peu peu confondre aujourd'hui avec un code. Pouvez vos m'aider?
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne pour firstday = dimanche de cette semaine et le dernier jour = samedi de cette semaine. En l'étendant à exécuter du lundi au dimanche, est trivial.
Le faire fonctionner avec les premier et dernier jours dans les différents mois est laissé comme exercice pour l'utilisateur
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();
juste que j'ai corrigé le @RichardN du code, qui est d'avoir une petite erreurÊtre prudent avec la accepté de répondre, il ne permet pas de régler l'heure à 00:00:00 et 23:59:59, de sorte que vous pouvez avoir des problèmes.
Je recommande l'utilisation de Moment.js pour traiter avec les dates. Pour votre cas:
C'est juste un petit cas d'utilisation, c'est vraiment simple à faire beaucoup d'opérations complexes.
Vous pouvez voir plus de détails ici: http://momentjs.com/
var startOfWeek = moment().startOf('isoweek').toDate();
var endOfWeek = moment().endOf('isoweek').toDate();
Vous pouvez également utiliser les lignes de code suivantes pour obtenir le premier et le dernier jour de la semaine:
Espère qu'il sera utile..
Voici un moyen rapide pour obtenir le premier et le dernier jour, pour toute mise en jour.
sachant que:
1 jour = 86,400,000 millisecondes.
JS dates de valeurs sont en millisecondes
Recette: savoir combien de jours vous avez besoin de l'enlever pour obtenir le votre semaine de début de journée (multiplier par 1 jour de millisecondes). Tout ce qui est à gauche après cela est d'ajouter 6 jours pour obtenir votre fin de journée.
L'excellent (et immuable) date-pnr de la bibliothèque gère la plupart de manière concise:
Vous pourriez faire quelque chose comme ce
Où
startDay
est un nombre de 0 à 6, où 0 représente le dimanche (c'est à dire 1 = lundi, 2 = mardi,...).SetDate
sera définit le jour du mois. À l'aide desetDate
pendant le démarrage et la fin du mois,va entraîner dans la mauvaise semaineSi u réglage de la Date est 01-Jul-2014, il va montrer firstday 29-Jun-2014 et le dernier jour que 05-Jun-2014 au lieu de 05-Jul-2014
Afin de surmonter ce problème, j'ai utilisé
Je recommande d'utiliser Moment.js pour de tels cas. J'ai eu des scénarios où j'ai eu à vérifier la date actuelle heure, cette semaine, ce mois-ci et ce quartiers date de temps. Au-dessus d'une réponse m'a aidé alors j'ai pensé à partager reste de l'fonctions ainsi.
Simplement obtenir de la date actuelle heure dans le format spécifique
Semaine commence le dimanche et se termine le samedi si nous utilisons simplement de la semaine " comme paramètre pour la fin de la fonction, mais pour obtenir le dimanche comme la fin de la semaine, nous avons besoin d'utiliser 'isoweek'.
J'ai choisi ce format pour mon besoin. Vous pouvez changer le format en fonction de votre exigence.
Cela fonctionne à travers le mois et l'année des changements.
krtek de la partie de la méthode de mal,j'ai testé cette
il fonctionne
Ce sera utile pour la date scénario.
Suggestion, mais vous avez un petit problème dans le dernier jour.
Vous devez modifier:
*date du jour == 30.06.2016 et le lundi est le premier jour de la semaine.
Il fonctionne également pour les différents mois et les années.
Testé avec qunit suite:
Bien que la question est apparente comme obsolète, je dois signaler un problème.
Question: Ce qui va se passer au 1er janvier 2016?
Je pense que la plupart des solutions ci-dessus calculer le début de la semaine que 27.12.2016.
Pour cette raison, je pense, le calcul correct devrait être comme ci-dessous simplement;
Le moment approche a fonctionné pour moi, pour tous les cas ( bien que je n'ai pas tester les limites, comme la fin de l'année , les années bissextiles ). Seulement la Correction dans le code ci-dessus est le paramètre est "isoWeek" , si vous voulez commencer la semaine à partir de lundi.
Juste à l'aide de javascript, vous pouvez utiliser la fonction ci-dessous pour obtenir le premier jour et le dernier jour de la semaine avec librement réglage de la date pour le début de la semaine.
Dernier jour de la semaine est à seulement 6 jours après le premier jour de la semaine
Test: