gpt4 book ai didi

javascript - 未捕获的类型错误 : getFullYear is not a function

转载 作者:行者123 更新时间:2023-11-28 14:48:06 24 4
gpt4 key购买 nike

我不断收到错误“Uncaught TypeError: date3.getFullYear is not a function”

我有一个 SQL 和 JS 格式的日期变量(从另一个函数作为参数传递):

min1 - in SQL format. [Like - '2017-08-13 0:0:00']
mindate - in JS format. [Like - 'Sun Aug 13 2017 00:00:00 GMT+0530 (India Standard Time)' ]

我正在使用这些变量创建一个名为“date3”的新日期变量。我尝试过以下方法:

var date2 = min1.split(' ')[0]; // should give me '2017-08-13'
date3 = new Date(date2);

并且,

var date3 = new Date();
date3 = mindate;

并且,

var date3 = mindate;

并且,

var Y = parseInt(min1.split(' ')[0].split('-')[0]);       // 2017
var M = parseInt(min1.split(' ')[0].split('-')[1]) - 1; // 7
var D = parseInt(min1.split(' ')[0].split('-')[2]); // 13
var date3 = new Date(Y,M,D);

当我console.log date3时,它给出了正确的日期。但是当我在 date3 上执行 getFullYear() 时,它会给出错误:“Uncaught TypeError: getFullYear is not a function”

我已经尝试了一切,但似乎没有任何效果。 (我什至读过其他一些类似的问题,有些答案说这是因为“日期”是一个“时刻”对象,但我不明白它的含义以及它如何帮助解决这个问题)。

更新:

这是我如何使用 getFullYear 函数。我尝试过两件事:

datestring = date3.getFullYear() + '-' + (date3.getMonth()+1) + '-' + (date3.getDate());

并且

var y = date3.getFullYear(),
m = date3.getMonth() + 1, // january is month 0 in javascript
d = date3.getDate();

我在“for”循环中使用它,并且 date3 是在循环上方创建的,如下所示:

var date3 = new Date(Y,M,D);
console.log(date3);

for (k=1; k<=x; k++) {

var y = date3.getFullYear(),
m = date3.getMonth() + 1, // january is month 0 in javascript
d = date3.getDate();
var pad = function(val) { var str = val.toString(); return (str.length < 2) ? "0" + str : str};
datestring = [y, pad(m), pad(d)].join("-");
console.log("DATESTRING", datestring);

divCode += '<div class="swiper-slide" id="_' + datestring + '" data-hash="' + datestring + '"><b>' +datestring+ '</b><br><br>' +tableCode+ '</div>';

// Incrementing date by 1
date3 = date3.setDate(date3.getDate() + 1);


}

最佳答案

setDate 方法在对象上就地工作,函数的返回值是新日期的时间戳。

当你这样做时:

date3 = date3.setDate(date3.getDate() + 1);

在您的函数中,date3 现在是一个整数(而不是 Date() 对象),所以基本上您的代码现在所做的是 1502742691133.getFullYear() ,这是错误的。

您无需将 setDate() 的值设置为 date3。只要这样做:

date3.setDate(date3.getDate() + 1);

关于javascript - 未捕获的类型错误 : getFullYear is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com