Javascript: Hjälp med att göra ett javascript som hittar första lördagen i september!

Trädvy Permalänk
Medlem
Registrerad
Aug 2016

Javascript: Hjälp med att göra ett javascript som hittar första lördagen i september!

Hej,
jag behöver hjälp med att göra ett javascript som hittar vilket datum (i det här formatet: 2 September 2017) första lördagen i september är.

Alla tips är välkommna!
Tack i förväg!

Trädvy Permalänk
Medlem
Plats
Västra Frölunda
Registrerad
Maj 2004

skapa en variabel som innehåller 1 september, stega sedan fram en dag i taget tills det är lördag.
se getDay()

as far as we can tell, the massacre went well...

Trädvy Permalänk
Medlem
Registrerad
Aug 2016

Lösning

det slutade med den här koden: https://jsfiddle.net/n3wsw3/mv6ruaha/

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Dec 2014

Jag tog och skrev om din kod lite för att göra det något mindre. Det bör vara exakt samma funktionalitet som det du hade tidigare men tar lite mindre plats och använder färre variabler.

Har javascripts koden för den kortare versionen nedanför ifall du är intresserad:

var d = new Date(); var year = parseInt(d.getMonth()) > 9 ? d.getFullYear() + 1 : d.getFullYear(); var day = new Date(year + "-" + "09-01").getDay(); document.getElementById("date").innerHTML = (6-(day-1)) + " September " + year;

Det går självklart att optimera ytterligare men gjorde mest ett par grundliga ändringar som fortfarande håller samma funktion. Sedan finns det ett specialfall som jag inte tycks hålls. Ur koden ser jag att syftet är att man ska ta fram nästa gång den första lördagen i september framkommer. Därför tar du nästa år ifall man redan är förbi september månad. Dock får man problem om man är i september månad men redan gått förbi första lördagen eftersom den då kommer ta ett datum som redan varit (Eftersom man inte är förbi september månad än).

Trädvy Permalänk
Medlem
Registrerad
Aug 2016
Skrivet av AfterShock:

Jag tog och skrev om din kod lite för att göra det något mindre. Det bör vara exakt samma funktionalitet som det du hade tidigare men tar lite mindre plats och använder färre variabler.

Har javascripts koden för den kortare versionen nedanför ifall du är intresserad:

var d = new Date(); var year = parseInt(d.getMonth()) > 9 ? d.getFullYear() + 1 : d.getFullYear(); var day = new Date(year + "-" + "09-01").getDay(); document.getElementById("date").innerHTML = (6-(day-1)) + " September " + year;

Det går självklart att optimera ytterligare men gjorde mest ett par grundliga ändringar som fortfarande håller samma funktion. Sedan finns det ett specialfall som jag inte tycks hålls. Ur koden ser jag att syftet är att man ska ta fram nästa gång den första lördagen i september framkommer. Därför tar du nästa år ifall man redan är förbi september månad. Dock får man problem om man är i september månad men redan gått förbi första lördagen eftersom den då kommer ta ett datum som redan varit (Eftersom man inte är förbi september månad än).

meningen är att den ska uppdateras i oktober, Tack för fin justering!

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Dec 2014
Skrivet av n3wsw3:

meningen är att den ska uppdateras i oktober, Tack för fin justering!

I sådana fall borde koden vara korrekt.