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

生成随机日期后无法调用getFullYear获取年份,请求技术协助

问题原因及解决方法

你当前的问题是dateOfInterest存储的是函数本身,而不是调用函数后返回的Date对象,函数没有getFullYear()方法,自然会报错。

修正方案一:先定义函数,再调用赋值

// 定义生成随机日期的函数
function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
}

// 调用函数,把返回的Date实例赋值给dateOfInterest
var dateOfInterest = randomDate(new Date(2012, 0, 1), new Date());

// 此时就能正常获取年份
var yearOfInterest = dateOfInterest.getFullYear();

修正方案二:立即执行函数表达式(IIFE)

如果不想单独定义函数,也可以用立即执行的方式直接得到Date实例:

var dateOfInterest = (function randomDate(start, end) {
    return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
})(new Date(2012, 0, 1), new Date());

var yearOfInterest = dateOfInterest.getFullYear();

核心逻辑就是:必须确保dateOfInterest是Date对象实例,而不是函数本身,这样才能调用getFullYear()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:20:52