3

I'm at my wits end trying to force this jQuery datepicker control to understand specific date formats. What the hell is going on here?

View

@Html.TextBoxFor(model => model.StartDate, "{0:dd/MM/yyyy}", new { @class = "datefield" })

Javascript

$(function () {
    $(".datefield").datepicker({
        dateFormat: 'dd/MM/yyyy',
        showOn: "button"
    });
});

On page load

On page load

datepicker clicked, so far so good

datepicker clicked

date selected... what?

date selected

2 Answers 2

6

According to the documentation:

  • dd - day of month (two digit)
  • MM - month name long
  • yy - year (four digit)

So dd/MM/yyyy should produce that result. (The day, the long month name, and the 4-digit year twice.) To match your initially loaded format, you'd want this:

dd/mm/yy
Sign up to request clarification or add additional context in comments.

Comments

5

You need to set it like this:

$(function () {
    $(".datefield").datepicker({
        dateFormat: 'dd/mm/yy',
        showOn: "button"
    });
});

As noted in the documentation, the yy format specifies a 4 digit year. When you write yyyy you are basically telling it to render the year twice. Relating to the month, jQuery associates MM (capital letters) with the name of the month and mm with the corresponding digit form.

In conclusion, the date formats differ between .Net and jQueryUI.

1 Comment

Thank you! If I could accept two answers I would ;)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.