UIDatePicker - minDate & maxDate from php Var

UIDatePicker - minDate & maxDate from php Var

本文关键字:maxDate from php Var amp minDate UIDatePicker      更新时间:2023-09-26

我有一些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将最小和最大日期分配给一个idatepicker。

最初我这样做,它工作:

var theDate = new Date();
      $( "#datepicker" ).datepicker(
          {        
          dateFormat: 'dd-mm-yy',
          maxDate: new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate())
      }
      )

然而,试图实现相同的使用php变量不工作:

$( "#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…可能是我试图创建一个日期的方式…但是我的语法到底有什么问题呢?

您的数组数据可能以错误的顺序放入javascript Date()构造函数中。假设您的日期字符串的格式为YYYY-MM-DD,并且您将print_r()您的$maxdate数组,您应该看到如下内容:

Array
(
    [0] => 2011
    [1] => 0
    [2] => 01
)

注意这个数组的下标顺序是0=>年,1=>月,2=>日。因此,您需要修改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>