我有一个数据报警器,它禁用存储在数据库中的所有日期,而且它工作得很好。虽然我有一个问题,但当前的输入格式是my,而我的数据库中的日期格式是yy,这会导致插入时出现问题。我试着添加dateFormat: yy,它不起作用,我试着将它放置在函数的外部和内部,它所做的就是使我的数据报警器无法工作。我真的需要一些帮助,谢谢!如果这是一个愚蠢的问题,我很抱歉,但我对jquery还不熟悉。我试着到处搜索,但是由于我有一个显示日:函数(日期)函数,我似乎无法解决我的问题。
是的,我可以在我的数据库中更改我的日期列的格式,但是我的其他人正在为我们连接到一个数据库的网站开发一个管理面板应用程序,但我现在不能联系他们。谢谢!
PHP
<?php
$query = " SELECT * FROM event_table ";
$result = mysqli_query($conn,$query);
$sentToList = array();
while($row = mysqli_fetch_assoc($result)) {
$sentToList[] = $row['event_date'];
}
$json = json_encode($sentToList);
?>剧本
<script >
var dateToday = new Date();
$(function() {
var array = <?php print_r($json) ?>
$('#mydate').datepicker({
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ array.indexOf(string) == -1 ]
}
});
});
</script>发布于 2017-09-14 10:37:48
在这方面,有许多事情需要帮助:
将PHP数组转换为JSON
当从PHP获得JSON编码的'string'时,需要使用JSON.parse(*yourJSONString*);将其解析为JSON对象
日期格式化问题
不使用'20' for year的日期格式要求您在格式字符串中只使用一个y。
dateFormat: 'y-mm-dd'在禁用日期上添加红色X的样式
红色X的禁用日期也需要一些CSS。
.ui-datepicker-calendar>tbody>tr>td.ui-datepicker-unselectable>span.ui-state-default:before{
bottom: 0;
content: "X";
height: 4px;
left: 7px;
margin: auto;
position: relative;
right: 0;
top: 0;
width: 4px;
color: #FF0000;
}可选的额外JQuery UI插件
您甚至可以使用工具提示插件使可选择的日期更加明显。
示例
$( function()
{
//build up your array
//this is a mock of var arrayFromPHP = <?php echo json_encode($json); ?>;
var phpArrayString = '["17-09-30","17-09-29", "17-09-28", "17-09-15", "17-09-09"]';
//parse your json here
var array = JSON.parse(phpArrayString);
//include dateFormat AND beforeShowDay options
$( "#mydate" ).datepicker({
dateFormat: 'y-mm-dd',
beforeShowDay: function(date)
{
var string = jQuery.datepicker.formatDate('y-mm-dd', date);
//You can even use tooltips to make dates you can select more obvious
return [ array.indexOf(string) == -1, 'highlight', 'You may select this date' ];
}
});
//Optionally - call the tooltip plugin on dates that can be selected
$('#mydate .highlight a').tooltip();
});/*
Add this to your stylesheet to include the red X's
*/
.ui-datepicker-calendar>tbody>tr>td.ui-datepicker-unselectable>span.ui-state-default:before{
bottom: 0;
content: "X";
height: 4px;
left: 7px;
margin: auto;
position: relative;
right: 0;
top: 0;
width: 4px;
color: #FF0000;
}
/*
Simple utility classes for example styling
*/
.bordered{
border: 1px solid black;
}
.padded{
padding: 5px;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/>
<div class="bordered">
<div class="padded">
<label for="mydate"> Date </label>
<br />
<input type="text" id="mydate" size="30" >
</div>
</div>
发布于 2017-09-14 10:22:25
发布于 2017-09-14 10:26:31
你不应该这样定义格式吗?
$('#mydate').datepicker({ dateFormat: 'yy-mm-dd' });
如果这就是你已经尝试过的
https://stackoverflow.com/questions/46216428
复制相似问题