2013-10-12 78 views
0

我有一个页面,允许用户选择一个日期范围,然后从数据库中创建一个pdf格式的报表,其日期介于所选范围之间。这工作正常,直到我意识到我不能使用htmlinput类型date。只有某些浏览器支持它。所以我使用这个jQuery:http://jqueryui.com/datepicker/#date-range但是,现在的日期格式都是错误的。 MySQL采用的日期格式为yyyy-mm-dd,并将其作为mm/dd/yyyy发送。我试图改变格式,没有什么改变。有任何想法吗?jQuery格式化日期范围

<body> 
    <div class="dateselectwrap"> 
     <form action="reports/arrivals.php" method="post"> 
      <div class="dateselect"> 
       <input type="text" class="datepicker" name="start" id="from" required="yes" /> 
       <input type="text" class="datepicker" name="finish" id="to" required="yes" /> 
       <p >Format options:<br /> 
        <select id="format"> 
        <option value="yy-mm-dd">ISO 8601 - yy-mm-dd</option> 
        </select> 
       </p> 
      </div> 
      <div class="datesubmit"> 
       <input type="Submit" name="Submit"> 
      </div> 
      <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
       <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
       <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
       <link rel="stylesheet" href="/resources/demos/style.css" /> 
       <script> 
       $(function() { 
       $(".datepicker").datepicker(); 
       $("#format").change(function() { 
        $(".datepicker").datepicker("option", "dateFormat", $(this).val()); 
       }); 
       }); 
       </script> 
       <script> 
       $(function() { 
       $("#from").datepicker({ 
        defaultDate: "+1w", 
        changeMonth: true, 
        numberOfMonths: 3, 
        onClose: function(selectedDate) { 
        $("#to").datepicker("option", "minDate", selectedDate); 
        } 
       }); 
       $("#to").datepicker({ 
        defaultDate: "+1w", 
        changeMonth: true, 
        numberOfMonths: 3, 
        onClose: function(selectedDate) { 
        $("#from").datepicker("option", "maxDate", selectedDate); 
        } 
       }); 
       }); 
       </script> 

     </form> 
    </div> 
</body> 

回答

3

你可以使用dateformat,如:dateFormat: 'yy-mm-dd'

 <script> 
      $(function() { 
      $("#from").datepicker({ 
       defaultDate: "+1w", 
       dateFormat: 'yy-mm-dd', 
       changeMonth: true, 
       numberOfMonths: 3, 
       onClose: function(selectedDate) { 
       $("#to").datepicker("option", "minDate", selectedDate); 
       } 
      }); 
      $("#to").datepicker({ 
       defaultDate: "+1w", 
       dateFormat: 'yy-mm-dd', 
       changeMonth: true, 
       numberOfMonths: 3, 
       onClose: function(selectedDate) { 
       $("#from").datepicker("option", "maxDate", selectedDate); 
       } 
      }); 
      }); 
      </script> 

文档可以在这里找到:

http://api.jqueryui.com/datepicker/#option-dateFormat

http://api.jqueryui.com/datepicker/#utility-formatDate

+0

它实际上是'dateFormat:'yy-mm-dd','如果不是这样它就像'20132013 - mm-dd'。不过谢谢你! –

+0

固定错字.. :) –

0

jQueryUI的Datepicker窗口小部件有一个dateFormat选项,您可以在创建窗口小部件时使用,也可以在使用.datepicker("option", "dateFormat", ...)函数之后使用该选项。

有一个示例here和文档是here

+1

只是包含链接的答案是皱眉,我相信。把一些细节,然后链接到他们的更多信息,如rkp的答案。 – Barmar

+0

皱眉了谁?我不确定简单地提供代码本质上是回答每个问题的最佳方式,尤其是在我看来,当它是单行修正而且文档非常直接时。教人们使用文档很重要。特别是在这种情况下,如果代码复制并粘贴来自示例的代码而不理解代码的工作方式,那么提问者已经没有显示出更多的努力。 – Joseph

+0

来自http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers - 我认为这些链接非常棒,但它们不应该是唯一的您的答案中有一条信息._ – Barmar