Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript数组中存储MySQL日期?_Javascript_Php_Mysql_Arrays - Fatal编程技术网

如何在Javascript数组中存储MySQL日期?

如何在Javascript数组中存储MySQL日期?,javascript,php,mysql,arrays,Javascript,Php,Mysql,Arrays,我在互联网上搜索过,有很多方法可以通过PHP将MySQL记录存储到Javascript数组中,比如。但是,我不能用Javascript存储日期记录 比方说 我的MySQL日期记录行在名为holiday_date的列中:2017-06-252017-06-262017-06-27 在我将Javascript转换为json之后,如何将其存储在Javascript中 <?php $sql = "SELECT public_holiday.holiday_date

我在互联网上搜索过,有很多方法可以通过PHP将MySQL记录存储到Javascript数组中,比如。但是,我不能用Javascript存储日期记录

比方说

我的MySQL日期记录行在名为holiday_date的列中:2017-06-252017-06-262017-06-27

在我将Javascript转换为json之后,如何将其存储在Javascript中

<?php
    $sql = "SELECT public_holiday.holiday_date 
            FROM public_holiday";
    $result = mysqli_query($conn, $sql);

    $result_array = Array();

    while($row = mysqli_fetch_assoc($result))
    {
         $result_array[] = $row;
    }

    $json_array = json_encode($result_array);

    echo $json_array;
  ?>

?

我尝试将它们存储到javascript日期数组中,如

var holidays = [<?php //sample array for example 
        $loop_one = true;
        foreach ($result_array as $date) 
        {
            if ($loop_one) 
            {
                echo "'new Date(\'$date\')'";
                $loop_one=false;
            } 
            else 
            {
                echo ", 'new Date(\'$date\')'";
            }
        }
?>];

var holidays=[因此在您的示例中,
$result\u数组
变量将是一个PHP数组,如下所示:

$result_array = ['2017-06-25', '2017-06-26', '2017-06-27'];
在将其传递给Javascript之前,您实际上不需要将其转换为JSON

<?php
$sql = "SELECT holiday_date FROM public_holiday";
$result = mysqli_query($conn, $sql);

$result_array = Array();

while($row = mysqli_fetch_assoc($result))
{
     $result_array[] = $row['holiday_date'];  # Return the actual date value and not an array
}
?>

Javascript部分:

var holidays = [<?php 
    $firstLoop = true;
    foreach ($result_array as $date_result) {
        # Here you could format your $date_result variable as a specific datetime format if needed to make it compatible with Javascripts Date class.
        if ($firstLoop) {
            $firstLoop = false;
            echo "new Date('$date_result')";
        } else {
            echo ", new Date('$date_result')";
        }
    }
?>];

var holidays=[您的
while循环应该是这样的,并将
日期推送到新数组中

<?php

$result_array = Array();

while($row = mysqli_fetch_assoc($result))
{
     $result_array[] = $row['public_holiday.holiday_dat'];
}

 //$result_array contains date like this $result_array = ['2017-06-26', '2017-06-27'];

?>

Javascript示例

<script>

    var holidays = [<?php $result_array = ['2017-06-26', '2017-06-27']; //sample array for example 
    $loop_one = true;
    foreach ($result_array as $date) {

        if ($loop_one) {
            echo "'new Date(\'$date\')'";

            $loop_one=false;
        } else {
            echo ", 'new Date(\'$date\')'";
        }
    }
?>];

 console.log(holidays);

</script>

假期=[

var holidays=[要获取javaScript日期对象数组,只需更改脚本代码,无需更改PHP代码。
您可以使用JSON.parseforEach循环

像这样试试

<script>
    var holidays = '<?php  echo $json_array;?>';
    holidays=JSON.parse(holidays);
    var holidayArray=[];
    holidays.forEach(function (key) {
        holidayArray.push(new Date(key));
    });
    console.log(holidays);
    console.log(holidayArray);
</script>

风险值='';
holidays=JSON.parse(假日);
var holidayArray=[];
假日。forEach(功能(键){
holidayArray.push(新日期(键));
});
控制台日志(假日);
日志(holidayArray);
它将产生一个输出


我想它会对你有所帮助。

当你说无效时,哪个确切的代码会被破坏?你认为什么是
javascript
代码?var holidays=[];var holidays=;是无效的…php部分没有问题我希望将所有日期记录存储到javascript日期数组中…像普通数组一样:var holidays=[新日期(“2017-06-26”),新日期(“2017-06-27”)…],但我不知道如何从MySQLeval($json_数组)存储,循环并将值转换为日期,将其存储在新数组中。您有任何演示吗?因为此解决方案在我的浏览器中不起作用。@YashidaKimLeeRoger我没有可用的演示,但我在
while($row…)的主体中注意到您的代码中有一个错误
并将其修改为我的答案。如果您有进一步的问题,您可以提供一些生成javascript的示例。这将表明日期呈现错误的位置。我的浏览器在我将您的解决方案插入javascript后显示未捕获的语法错误:意外标记<。顺便问一下,我的
while($row…
have?您是否需要此arrray[“新日期('2017-06-25'),“新日期('2017-06-26'),“新日期('2017-06-27')”)]@YashidaKimLeeRoger@JYoThI是的!是的!从MySQL到javascript数组!我不理解'var holidays=[据推测是从MySql获取数据的记录,但您硬编码了它?我的浏览器仍在向我显示意外标记,您需要忽略代码$result_array=['2017-06-26','2017-06-27'];我的浏览器不断向我显示未捕获的语法错误:意外字符串,它无法工作!TQ太多了!您刚刚救了我的命!
<script>
    var holidays = '<?php  echo $json_array;?>';
    holidays=JSON.parse(holidays);
    var holidayArray=[];
    holidays.forEach(function (key) {
        holidayArray.push(new Date(key));
    });
    console.log(holidays);
    console.log(holidayArray);
</script>