将它放入变量后格式化日期?

时间:2011-11-24 10:27:25

标签: javascript jquery jquery-ui-datepicker

我正在使用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+0100Sun Nov 27 2011 00:00:00 GMT+0100放在我的文本框中。

我希望它们采用“dd-mm-yyyy”格式,所以只需21/11/2011。 我尝试了诸如.formatDate之类的东西,但这似乎不起作用。

我知道我可以做mon.GetDay() + "/" + mon.GetMonth() + "/" etc之类的事情但javascript必须有某种正确的日期格式化器,对吗?

2 个答案:

答案 0 :(得分:4)

JavaScript本身没有日期格式功能,但你使用的是jQuery ui,所以试试这个:

$('#endDate').val($.datepicker.formatDate('dd/mm/yy', sun));

答案 1 :(得分:0)

  

javascript必须有某种正确的日期格式化程序,对吧?

你认为不是你,但不是。 OP中的解决方案是最好的,即。将日期连接在一个字符串中,但不要忘记将{1}添加到mon.GetMonth(),因为它基于零:

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

您可以使用一个很好的脚本,它提供了其他语言提供的日常格式化功能here