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

Date.toLocaleString异常:邮件日期字段显示undefined问题排查

问题诊断与解决

核心问题:时区字符串拼写错误

你代码里的时区参数存在拼写错误:

const date = new Date().toLocaleString("en-GB", {
    timeZone: "Europe/Athensli", // 此处多了一个冗余字母i
});

正确的时区标识符应为"Europe/Athens",拼写错误会导致toLocaleString无法识别有效时区,最终返回undefined,这就是邮件中日期字段显示异常的直接原因。

关于终端测试的补充说明

你在Node终端执行:

let dt = new Date().toLocaleString("en-GB", {timezone: "Europe/Athens",}); console.log(dt);

后出现的undefined是正常现象——let声明语句本身没有返回值,终端先输出console.log(dt)的结果18/09/2023, 12:29:32,随后显示的是整个语句的执行返回值undefined,这和日期生成逻辑无关。另外注意,标准配置参数名是驼峰式的timeZone,虽然Node环境可能兼容小写timezone,但建议统一使用标准写法避免潜在问题。

修正后的代码

const date = new Date().toLocaleString("en-GB", {
    timeZone: "Europe/Athens", // 修正时区拼写
});
const mailMe = {
    from: process.env.EMAIL,
    to: process.env.MYEMAIL,
    subject: "New Message",
    html: `<p>Name: ${name}</p>
        <p>Date: ${date}</p>
        <p>Email: ${email}</p>
        <p>Company: ${company}</p>
        <p>Message: ${message}</p>`,
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:35:08