javascript - "a.getFullYear is not a function"尝试获取日期差异时

标签 javascript date

我正在尝试使用 JS 获取某个日期和今天之间的日期差异。 这是我的代码,但我得到“a.getFullYear 不是函数”。

var brbr = '<br><br>';
var duedate="2015-11-06";
document.write(duedate);
document.write(brbr);

// Today's date:
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if(dd<10) {
    dd='0'+dd
} 

if(mm<10) {
    mm='0'+mm
} 
today = yyyy+'-'+mm+'-'+dd;
document.write(today);
document.write(brbr);

// DIFFERENCE 2 dates:
var _MS_PER_DAY = 1000 * 60 * 60 * 24;


// a and b are javascript Date objects
function dateDiffInDays(a, b) {
    // Discard the time and time-zone information.
    var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
    var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
    return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

结果:

var days_left = dateDiffInDays(today, duedate);
document.write(days_left);
document.write(brbr);

最佳答案

您需要将 todayduedate 转换为 Date() 对象才能使用 .getFullYear()

function dateDiffInDays(a, b) {
    var aDate = new Date(a);
    var bDate = new Date(b);

    // Discard the time and time-zone information.
    var utc1 = Date.UTC(aDate.getFullYear(), aDate.getMonth(), aDate.getDate());
    var utc2 = Date.UTC(bDate.getFullYear(), bDate.getMonth(), bDate.getDate());
    return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

关于javascript - "a.getFullYear is not a function"尝试获取日期差异时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33512014/

相关文章:

javascript - Javascript 中 downloadUrl() 的解释?

javascript - Intl.DateTimeFormat 给出 1847 年或以下年份的奇怪结果

javascript - AngularJs:在 Controller 内格式化当前日期

javascript - 重置 RaphaelJS 变换

java - 如何将系统日期与数据库mysql中的日期相匹配

php日期奇怪的行为

mysql - MariaDB CURRENT_TIMESTAMP 默认值

javascript - 如何删除二维数组的 Angular 点索引?

javascript - 如何手动触发字段:error event in ParselyJS

javascript - 使用 Javascript 和 http-equiv 进行重定向