【问题标题】:get value of query from jQuery date picker (format issue)从 jQuery 日期选择器获取查询值(格式问题)
【发布时间】:2016-12-11 15:50:40
【问题描述】:

我有一个包含事件的表格,并希望根据用户选择的日期范围列出所有事件。我使用 jQuery datepicker,从中获取值并放入 sql 查询以显示所选日期范围内的事件。我的日期格式是 YYYY-mm-dd(f.e 2016-05-05),但是当我从日期选择器中选择日期时,它是(YYYY-05-05)。由于某种原因,它不会将 yyyy 转换为日期,而是将月份和日期转换为日期。这是我的代码:

 <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
 <script src="//code.jquery.com/jquery-1.10.2.js"></script>
 <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
 <link rel="stylesheet" href="/resources/demos/style.css">

 <script>
 $(function() {
 var firstdate = $('#firstdatepicker').datepicker({ dateFormat: 'YYYY- mm-dd' }).val();
 });
 </script>


 <script>
 $(function() {
 var lastdate = $('#lastdatepicker').datepicker({ dateFormat: 'YYYY-mm- dd' }).val();
 });
 </script>
</head>
<body>
<form method="post" action="archive.php">
  <p>First Date: <input name = "firstdatepicker" type="text"  id="firstdatepicker"></p>

 <p>Last Date: <input name = "lastdatepicker" type="text"  id="lastdatepicker"></p>

 <input type="submit" value="Get Data" name="data"/>

 </form>

我在 php 中的查询

 if(!isset($_POST['filters']) && isset($_POST['firstdatepicker']) && isset($_POST['lastdatepicker']) ){

 $firstdate = $_POST['firstdatepicker'];
 $lastdate = $_POST['lastdatepicker'];

$query= "SELECT *
        FROM Event
        WHERE Event.`start_date` BETWEEN '$firstdate' and '$lastdate'
        ORDER BY start_date DESC";

}

【问题讨论】:

  • 有关有效日期格式的信息请参阅 DOC

标签: javascript php jquery mysql jquerydatetimepicker


【解决方案1】:

YYYY 不是有效的日期格式,您应该使用yy(两个小写 y)

另外,只是一个建议 - 您应该使用 mysqli_real_escape_string 之类的某种函数或任何适合您的 SQL 连接的函数来转义用户输入 (post)

【讨论】:

    【解决方案2】:

    改为:

    var lastdate = $('#lastdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
    

    var firstdate = $('#firstdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
    

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

    【讨论】:

    • 非常感谢!它有帮助
    【解决方案3】:

    使用 yy 作为 4 位数年份占位符: dateFormat: "yy-mm-dd"

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多