27. februar 2006 - 13:59
Der er
1 kommentar og 1 løsning
Formatering af dato
Hej Eksperter, Jeg har nedenstående JavaScript funktion, som skal formatere en tilsendt dato til dette format: Mandag 27. februar 2006 Desværre virker funktionen ikke ved alle måneder. I 2006 virker f.eks. februar, mens marts ikke gør. Koden: function EmailConvertDate (FormDate) { FormDate = FormDate.replace(" ", "") DayNames = "Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag" MonthNames = "Januar,Februar,Marts,April,Maj,Juni,Juli,August,September,Oktober,November,December" DayArray = new Array(); DayArray = DayNames.split(",") MonthArray = new Array(); MonthArray = MonthNames.split(",") DateArray = new Array(); DateArray = FormDate.split("-") var FormDay = DateArray[0] var FormMonth = MonthArray[DateArray[1] - 1] var FormYear = DateArray[2] var DateForDayName = FormYear + ", " + FormMonth + ", " + FormDay Weekday = new Date(DateForDayName) WeekdayNumber = Weekday.getDay() - 1; WeekDayName = DayArray[WeekdayNumber] var ConvertedDate = FormDay + ". " + FormMonth + " " + FormYear document.getElementById("EmailMeetingDate").value = WeekDayName + " " + ConvertedDate } Ved de måneder som ikke virker, returnerer variablen "Weekday" NaN. Kan nogen regne denne ud?
Annonceindlæg fra itavis
27. februar 2006 - 14:42
#1
Jeg har nu fjernet fejlen - næsten. Alle dage og måneder virker - på nær hvis datoen ligger på en søndag. Koden: function EmailConvertDate (FormDate) { FormDate = FormDate.replace(" ", "") DayNames = "Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag" MonthNames = "Januar,Februar,Marts,April,Maj,Juni,Juli,August,September,Oktober,November,December" DayArray = new Array(); DayArray = DayNames.split(",") MonthArray = new Array(); MonthArray = MonthNames.split(",") DateArray = new Array(); DateArray = FormDate.split("-") var FormDay = DateArray[0] var FormMonth = MonthArray[DateArray[1] - 1] var FormYear = DateArray[2] var DateForDayName = DateArray[1] + "-" + DateArray[0] + "-" + DateArray[2] Weekday = new Date(DateForDayName) WeekdayNumber = Weekday.getDay() - 1; WeekDayName = DayArray[WeekdayNumber] var ConvertedDate = FormDay + ". " + FormMonth + " " + FormYear document.getElementById("EmailMeetingDate").value = WeekDayName + " " + ConvertedDate } Jeg har en teori om, at funktionen måske betragter søndag som den første dag i ugen og derved genererer en fejl? Tror i hvert fald ikke, at mine JS evner rækker til at løse dette...
27. februar 2006 - 15:06
#2
Jeg fandt ud af, at var den valgte dato en søndag, returnerede "WeekdayNumber" -1, som naturligvis lagde udenfor mit array. En simpel if-sætning løste dette problem. Spørgsmål lukket.