从 jQuery 日期选择器获取查询值(格式问题)
get value of query from jQuery date picker (format issue)
我有一个包含事件的 table,我想根据用户选择的日期范围列出所有事件。我使用 jQuery 日期选择器,从中获取值并放入 sql 查询以显示在† select 日期范围内的事件。我的日期格式是 YYYY-mm-dd (f.e 2016-05-05),但是当我 select 来自日期选择器的日期是 (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";
}
YYYY
不是有效的日期格式,您应该使用 yy
(两个小写的 y)
此外,只是一个建议 - 您应该使用某种函数(例如 mysqli_real_escape_string
或任何适合您的 SQL 连接
的函数来转义用户输入 (post
)
更改为:
var lastdate = $('#lastdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
和
var firstdate = $('#firstdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
使用 yy 作为 4 位数年份占位符:
dateFormat: "yy-mm-dd"
我有一个包含事件的 table,我想根据用户选择的日期范围列出所有事件。我使用 jQuery 日期选择器,从中获取值并放入 sql 查询以显示在† select 日期范围内的事件。我的日期格式是 YYYY-mm-dd (f.e 2016-05-05),但是当我 select 来自日期选择器的日期是 (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";
}
YYYY
不是有效的日期格式,您应该使用 yy
(两个小写的 y)
此外,只是一个建议 - 您应该使用某种函数(例如 mysqli_real_escape_string
或任何适合您的 SQL 连接
post
)
更改为:
var lastdate = $('#lastdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
和
var firstdate = $('#firstdatepicker').datepicker({ dateFormat: 'yy-mm-dd' }).val();
使用 yy 作为 4 位数年份占位符:
dateFormat: "yy-mm-dd"