数据库日期和 jquery 日期验证
Posted
技术标签:
【中文标题】数据库日期和 jquery 日期验证【英文标题】:Database date and jquery date validation 【发布时间】:2016-01-26 13:31:31 【问题描述】:我的数据库有下表
event_id event_name event_date
-------------------------------------------------------------------------
1 Training on C/C++ 02-11-2015
2 Core Java 03-11-2015
3 Advanced Java 04-11-2015
4 Cloud Computing 09-11-2015
5 Cloud Computing 10-11-2015
6 Big Data 12-11-2015
日期只是字符串,即 event_date 列是 varchar 类型。我需要检查从 jQuery datepicker 中选择的日期是否与 event_date
列中的至少一个日期匹配。对于选择的任何其他日期,除了 02-11-2015,else
中的 alert
会弹出。当我运行它时,只有第一个日期得到正确验证。循环有问题吗?我该如何解决这个问题?
<script>
$(document).ready(function ()
$("#datepicker").datepicker(
dateFormat: "dd-mm-yy"
);
$('form#dateform').submit(function()
var aselectedDate = $('#datepicker').val();
localStorage.setItem('adate', aselectedDate);
);
);
</script>
<?php
$adateStringValue = (isset($_POST['datepicker'])) ? $_POST['datepicker'] : '';
echo '<form id="dateform" name="dateform" action="" method="POST"><br><br>
<table>
<tr>
<td><b>Select a date <b></td>
<td><input id="datepicker" name="datepicker" size="15" value="' .$adateStringValue . '"/></td>
</tr>
</table>
<br>
<input type="submit" name="submit" value="Submit"/>
</form>';
if (isset($_POST['submit']))
$sql1 = "SELECT event_date from events_schedule";
$getDates_query = mysql_query($sql1, $con);
$fetchdates = mysql_fetch_array($getDates_query);
while ($fetchdates = mysql_fetch_array($getDates_query))
if ($fetchdates['event_date'] == $adateStringValue)
$message = "You have selected this date for your training: $adateStringValue";
echo "<script>alert('$message');</script>";
break;
else
$message1 = "No Training Event is scheduled on this date. Please select another date";
echo "<script>alert('$message1');</script>";
break;
?>
【问题讨论】:
【参考方案1】:所以.. ..您从数据库中获取所有日期.. ..并且每次都遍历它们,为每一行弹出一个 JS 警报框。
为什么不在查询中使用日期选择器中的日期。
$sql1 = "SELECT * FROM events_schedule WHERE event_date='$adateStringValue'";
处理响应是否返回记录。
..只是一个建议。
【讨论】:
【参考方案2】:如果我得到你想要的,你可以使用strtotime 函数。它将传递给它的日期时间字符串转换为可用于比较的 Unix 时间戳。
如果 datepicker 中的日期是 02-11-2015,那么函数将返回 1446422400 并且如果存储在 db 中的日期是 02-11-2015 然后该函数也将返回 1446422400 以便您可以比较这两个 easiyl。
$var1 = strtotime($adateStringValue);
$var2 = strtotime($fetchdates['event_date']);
那么可以比较为if($var1 == $var2)
注意:这只是函数使用的示例和说明。您必须根据需要进行修改。
【讨论】:
谢谢.. 但这仍然没有解决问题。它仅适用于 2015 年 3 月 11 日这个日期。以上是关于数据库日期和 jquery 日期验证的主要内容,如果未能解决你的问题,请参考以下文章
不显眼的验证/jQuery 客户端验证输入的日期是不是超过当前日期
使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)