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?
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.