Używam datepickera, który podaje datę w formacie Sun Jul 7 00:00:00 EDT 2013. Mimo że miesiąc wskazuje lipiec, jeśli wykonam getMonth, otrzymam miesiąc poprzedni.
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7
Co ja robię źle?
javascript
date
programista747
źródło
źródło
getYear()
!! ;-)Odpowiedzi:
Ponieważ getmonth () zaczyna się od 0. Być może będziesz musiał
d1.getMonth() + 1
osiągnąć to, co chcesz.źródło
d1.getMonth() < 12 ? d1.getMonth() + 1 : 1
- inaczej grudzień byłby 13, nie?getMonth()
funkcja jest indeksowana zerem. Musisz zrobićd1.getMonth() + 1
Ostatnio korzystałem z biblioteki Moment.js i nigdy nie oglądałem się za siebie. Spróbuj!
źródło
Zakładając, że używasz swojej zmiennej
Miesiąc wymaga dokładności +1, zaczyna liczyć od 0
W przeciwieństwie… te metody NIE potrzebują plusa 1
I zauważ, że to
.getDate()
NIE jest .getDay()
Mam nadzieję że to pomoże
Podejrzewam, że te metody nie są spójne z powodów historycznych
źródło