从数据库获取日期到 jQuery Ui 选择器 PHP

Get dates from database to the jQuery Ui Picker in PHP

我正在尝试使用 PHP 从数据库中获取日期。这将在日期选择器中突出显示。为此,我进行了 sql 查询以获取日期,如下所示。

HTML

Date: <input type="text" id="datepicker">
// Static dates
// An array of dates
var eventDates = {};
eventDates[ new Date( '08/07/2016' )] = new Date( '08/07/2016' );
eventDates[ new Date( '08/12/2016' )] = new Date( '08/12/2016' );
eventDates[ new Date( '08/18/2016' )] = new Date( '08/18/2016' );
eventDates[ new Date( '08/23/2016' )] = new Date( '08/23/2016' );
<script>
$(function() {
// An array of dates
var eventDates = {};
<?php

$sql = "SELECT * from `table` WHERE `value` > 0";

$result = $connect->query($sql);                       

while($row = $result->fetch_assoc()) { 

?>
eventDates[new Date('<?php echo $date = $row['date']; ?>')] = new Date(
'<?php echo $date = $row['date']; ?>');
<?php
}
?>

// datepicker
$('#datepicker').datepicker({
beforeShowDay: function(date) {
var highlight = eventDates[date];
if (highlight) {
return [true, "event", 'Tooltip text'];
} else {
return [true, '', ''];
}
}
});
});
</script>

所以在上面的代码中,我循环了所有 value > 0 的日期。哪个应该打印所有日期但它没有。我检查了查询,它在单独的 PHP 文件中完美运行。它回显所有日期 value > 0.

我不确定这是否是从数据库中获取日期并将其传递给日期选择器的正确方法。还有另一种使用 JSON 的方法,但我不熟悉该方法,因为我没有使用过 JSON.

我可以进行哪些更改以从数据库中获取日期并在日期选择器中突出显示它们?

我已将日期格式从 YY-MM-DD 设置为 YY/MM/DD。由于日期选择器的日期格式是 YY/MM/DD。如果您将第二种格式与 - 一起使用,它将不会显示输出。

这是更正后的脚本代码:

<script>
    $(function() {
        // An array of dates
        var eventDates = {};
        <?php

        $sql = "SELECT * from `table` WHERE `value` > 0";

        $result = $connect->query($sql);   

        while( $final=$result->fetch_assoc() ) 
        {

        ?>
        eventDates[new Date('<?php 
        $orgDate = date($final['date']);
        $date = str_replace('-"', '/', $orgDate);  
        $newDate = date("Y/m/d", strtotime($date));  
        echo $newDate   ?>')] = new Date(
            '<?php $orgDate =date($final['date']); 
             $date = str_replace('-"', '/', $orgDate);  
             $newDate = date("Y/m/d", strtotime($date));  
             echo $newDate  
             ?>'
        );

        <?php
        
        }

        ?>

        // datepicker
        $('#start').datepicker({

            dateFormat: "yy-mm-dd",

            beforeShowDay: function(date) {
                var highlight = eventDates[date];
                if (highlight) {
                    return [true, "event", 'Tooltip text'];
                } else {
                    return [true, '', ''];
                }
            }
        });
    });
    </script>