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

如何在PHP生成的链接中插入浏览器端获取的Javascript日期

问题原因

PHP属于服务端运行的脚本,JavaScript属于客户端(用户浏览器)运行的脚本,二者执行时机完全不同:
你代码中$date变量存储的是完整的JS代码字符串,不是JS运行后输出的日期值:

  • 直接echo $date时,浏览器接收到响应后会执行这段JS代码,输出日期,所以你能在页面上看到正常的日期展示
  • 当你用PHP把$date拼接到href属性中时,服务端会直接把整段JS代码作为普通字符串拼接在链接里,最终生成的HTML链接实际为<a href="/example/<script>/*一整段JS代码*/</script>"> Today </a>,自然无法正常使用。

解决方案

方案1:直接用PHP生成日期(实现最简单)

如果业务允许使用服务端时间,直接用PHP原生日期函数生成对应格式的日期即可,不需要调用JS:

<?php  
if ( ! defined( 'ABSPATH' ) ) exit;
// 如需对齐智利时区,先添加下行代码
// date_default_timezone_set('America/Santiago');

$date = date('d-m-Y');
echo $date;
// 可正常生成链接
echo '<a href="/example/'.$date.'"> Today </a>';
?>

方案2:必须使用客户端本地时间时,全用JS实现逻辑

如果必须取用户设备的本地时间,就不要用PHP拼接链接,所有日期相关逻辑都在客户端用JS完成:

<?php  
if ( ! defined( 'ABSPATH' ) ) exit;
?>
<script type="text/javascript">
var event = new Date();
var options = { year: "numeric", month: "numeric", day: "numeric" };
var date = event.toLocaleDateString("es-CL", options);
// 输出日期
document.write(date);
// 生成拼接了日期的链接
document.write('<a href="/example/' + date + '"> Today </a>');
</script>

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:06:02