如何在Javascript数组中存储MySQL日期?
我在互联网上搜索过,有很多方法可以通过PHP将MySQL记录存储到Javascript数组中,比如。但是,我不能用Javascript存储日期记录 比方说 我的MySQL日期记录行在名为holiday_date的列中:2017-06-252017-06-262017-06-27 在我将Javascript转换为json之后,如何将其存储在Javascript中如何在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
$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.parse和forEach循环
像这样试试
<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>