我有一些php查询数据库以获取一些日期:
<?php
//connect to db etc
$sql="SELECT date FROM entries ORDER BY date ASC";
$result = mysql_query($sql);
if($result){
$entryDates = array();
while ($row=mysql_fetch_array($result)) {
$entryDates[] = $row['date'];
}
$minDate = explode("-", $entryDates[0]);
$minDate[1] -= 1;
$maxDate = explode("-", end($entryDates));
$maxDate[1] -= 1;
echo($maxDate[1]);
}
?>
然后尝试使用jquery将最小和最大日期分配给uidatepicker。
最初我做了这个并且有效:
var theDate = new Date();
$( "#datepicker" ).datepicker(
{
dateFormat: 'dd-mm-yy',
maxDate: new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate())
}
)
然而,尝试使用php vars实现相同功能不起作用:
$( "#datepicker" ).datepicker(
{
dateFormat: 'dd-mm-yy',
maxDate: new Date(<?php echo($maxDate[2]);?>,<?php echo($maxDate[1]);?>,<?php echo($maxDate[0]); ?>)
minDate: new Date(<?php echo($minDate[2]);?>,<?php echo($minDate[1]);?>,<?php echo($minDate[0]); ?>)
}
);
我正在尝试使用以下日期构造函数:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
$ minDate和$ maxDate是类似
的数组[yyyy|mm|dd]
当回显它们时,它们包含正确的值。所以问题在于jQuery ...可能是我尝试创建Date的方式......但是我的语法究竟出了什么问题?我看不出我做错了什么......
答案 0 :(得分:2)
您的数组数据可能以错误的顺序放入javascript Date()构造函数中。假设您的日期字符串格式为 YYYY-MM-DD ,而print_r()是您的$ maxdate数组,您应该看到如下内容:
Array
(
[0] => 2011
[1] => 0
[2] => 01
)
请注意,此数组的索引的顺序为0 =&gt;年,1 =&gt;月,2 =&gt;天。因此,您需要修改Date()构造函数,以将这些值与构造函数输入参数对齐,如下所示:
<script type="text/javascript">
$( "#datepicker" ).datepicker({
dateFormat: 'dd-mm-yy',
maxDate: new Date(<?php echo($maxDate[0]);?>,<?php echo($maxDate[1]);?>,<?php echo($maxDate[2]); ?>),
minDate: new Date(<?php echo($minDate[0]);?>,<?php echo($minDate[1]);?>,<?php echo($minDate[2]); ?>)
});
</script>