Avatar billede madssch Nybegynder
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?
Avatar billede madssch Nybegynder
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...
Avatar billede madssch Nybegynder
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester