You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PHP从MySQL获取的日期数据以字符串类型传递给JavaScript

问题原因

你当前的代码直接输出日期字符串到JS数组时没有包裹引号,JS会把2021-09-16识别为数值表达式执行减法运算,最终得到计算后的数值1995,而非你需要的日期字符串。

解决方案

方案1:使用json_encode自动格式化(推荐)

PHP内置的json_encode可以自动将PHP数组转换为符合JS语法的数组结构,自动处理字符串引号、逗号分隔等逻辑,无需手动拼接,完全避免语法错误。
代码修改如下:

<script>
<?php 
$connection = mysqli_connect("localhost","root","","test");
$dates = mysqli_query($connection,'SELECT * FROM `booking_dates`');
// 先把查询到的日期存到PHP数组
$bookedDates = [];
foreach($dates as $date){
    $bookedDates[] = $date['day'];
}
// 直接输出JSON格式的数组给JS变量
echo "const bookedArray = " . json_encode($bookedDates) . ";";
?>
</script>

方案2:手动给日期字符串加引号

如果你要保留原有的拼接逻辑,只需要在输出的日期值外层包裹单引号即可:

foreach($dates as $date){
    echo "'$date[day]' ,"; 
}

注意:这种方案如果日期值本身包含单引号会导致JS语法错误,仅适合确定日期格式固定无特殊字符的场景,优先推荐方案1。

内容的提问来源于stack exchange,提问作者Endre Kovács

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:18:05