9
votes

Comment obtenir la première date et la dernière date de la semaine à partir du numéro de semaine et de l'année?

Dans JavaScript, je veux obtenir la première date de la semaine et la dernière date de la semaine par semaine et année seulement.

Par exemple si mon entrée est:

2 (semaine), 2012

Alors ma sortie devrait être:

2012-01-08 et 2012-01-14


3 commentaires

Que diriez-vous si je donne 2 ans pour l'année 2013? Que devrait-il retourner?


Il devrait retourner la deuxième semaine de la première date et dernière date ....


@balaphp en fait, il retournera la première et la dernière date de la 2e semaine de l'année 2013..m I Droite. ?


4 Réponses :


1
votes

Vous pouvez vérifier et essayer avec le lien ci-dessous.

Comment obtenir le premier et le dernier jour de la Semaine en JavaScript

Cela peut vous aider à vous aider.

merci.


1 commentaires

Je l'avais déjà vérifié. Ses valeurs de retour par date, mais je souhaite les mêmes résultats par numéro de semaine et année ...



8
votes

Essayez ceci:

p>

var year = 2012;
var week = 2;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() + 604800000 * (week - 1);
var n1 = new Date(w);
var n2 = new Date(w + 518400000)

console.log(n1);
console.log(n2);


1 commentaires

Incorrect, N1 n'est pas nécessairement le lundi et le N2 n'est pas nécessairement le dimanche.



6
votes

Un peu de changement de la réponse de @bardiir, Si le premier jour de l'année n'est pas dimanche (ou lundi), ce résultat n'est pas correct. Vous devriez moins minimiser le numéro du premier jour.

Code modifié P>

p>

firstDay = new Date(2015, 0, 1).getDay();
console.log(firstDay);
var year = 2015;
var week = 67;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() - (3600000 * 24 * (firstDay - 1)) + 604800000 * (week - 1)
var n1 = new Date(w);
var n2 = new Date(w + 518400000)

console.log(n1);
console.log(n2);


0 commentaires

-1
votes
   dt = new Date();
   var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay()));
   var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay()));

0 commentaires