【问题标题】:UIDatePicker - minDate & maxDate from php VarUIDatePicker - 来自 php Var 的 minDate 和 maxDate
【发布时间】:2011-08-23 22:50:48
【问题描述】:

我有一些 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 中...可能是我尝试创建日期的方式...但是我的语法到底有什么问题?我看不出我做错了什么......

【问题讨论】:

    标签: php javascript jquery date uidatepicker


    【解决方案1】:

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

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

    请注意,此数组的索引顺序为 0=>year、1=>month、2=>day。因此,您需要修改 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>
    

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 2014-07-03
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多