2011-11-24 62 views
3

我正在使用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必须有某种适当的日期格式化程序,对不对?

回答

4

有在JavaScript本身没有日期格式的功能,但使用的是jQuery UI的这么试试这个:

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

谢谢,没有工作:) –

0

JavaScript必须有某种适当的日期格式化程序,对不对?

你会想你会不会,但没有。 OP中的解决方案是最好用的,即。在一个串起来串联的日期,但不要忘了加1 mon.GetMonth(),因为它是从零开始:

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

有一个很好的脚本,你可以使用它提供的日期格式功能,这其他语言的常用色域提供here