Форматировать дату после помещения в переменную? - PullRequest
3 голосов
/ 24 ноября 2011

Я использую DatePicker, чтобы позволить кому-то выбрать определенную неделю.

HTML в основном так:

<form method="post" action="">
    <input type="text" id="beginDate" />
    <input type="text" id="endDate" />
</form>

И вот этот javascript:

<script type="text/javascript">
    $(function () {
        $("#beginDate").datepicker(
        { dateFormat: "dd-mm-yy",
            onSelect: function () {
                var mon = $(this).datepicker('getDate');
                mon.setDate(mon.getDate() + 1 - (mon.getDay() || 7));
                var sun = new Date(mon.getTime());
                sun.setDate(sun.getDate() + 6);
                $(this).val(mon);
                $('#endDate').val(sun);
            }
        });
    });
</script>

Это работает, вроде ... Это помещает Mon Nov 21 2011 00:00:00 GMT+0100 и Sun Nov 27 2011 00:00:00 GMT+0100 в мои текстовые поля.

Я хочу, чтобы они были в формате "дд-мм-гггг", поэтому просто 21/11/2011. Я пробовал такие вещи, как .formatDate, но, похоже, это не работает.

Я знаю, что мог бы сделать что-то вроде mon.GetDay() + "/" + mon.GetMonth() + "/" etc, но у javascript должен быть какой-то правильный форматер даты, верно?

Ответы [ 2 ]

4 голосов
/ 24 ноября 2011

В самом JavaScript нет функции форматирования даты, но вы используете jQuery ui, поэтому попробуйте это:

$('#endDate').val($.datepicker.formatDate('dd/mm/yy', sun));
0 голосов
/ 24 ноября 2011

В javascript должен быть какой-то правильный форматер даты, верно?

Вы бы подумали, но нет.Решение в вашем ОП лучше всего использовать, т.е.объединяя дату вместе в строку, но не забудьте добавить 1 к mon.GetMonth(), так как она основана на нуле:

var dateString = mon.GetDay() + "/" + (mon.GetMonth() + 1) + "/" + mon.getFullYear();

Есть хороший скрипт, который вы можете использовать, который обеспечивает обычную гамму форматирования датыфункции, которые обеспечивают другие языки здесь

...