簡體   English   中英

無法讀取屬性“ getDate”

[英]Cannot read property 'getDate'

我正在為我的項目使用梯形失真校正。 在“發布”數據庫中,有publishedDate,我想用下面的代碼對其進行格式化。

function formatDate(date) {
    var monthNames = [
        "Ocak", "Şubat", "Mart",
        "Nisan", "Mayıs", "Haziran", "Temmuz",
        "Ağustos", "Eylül", "Ekim",
        "Kasım", "Aralık"
    ];

    var day = date.getDate();
    var monthIndex = date.getMonth();
    var year = date.getFullYear();

    return day + ' ' + monthNames[monthIndex] + ' ' + year;
}


var q = keystone.list('Post').model.findOne({
        state: 'published',
        slug: locals.filters.post,
    }).populate('author categories');

    q.exec(function (err, result) {
        Object.keys(result).forEach(function (key) {
            var element = result[key];              
            element.newDate = formatDate(element.publishedDate);
        });

        locals.data.post = result;
        next(err);
    });

});

當我運行項目時,發生錯誤。 但是我知道'publishedDate'是一個Date值。

 Mongoose model 'error' event fired on 'Post' with error:
 Cannot read property 'getDate' of undefined TypeError: Cannot read property 'getDate' of undefined

從您的代碼:

var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();

您確定在date對象中確實有一個getDate()date.getMonth()getFullYear()因為我還沒有看到您實例化date new Date()

也許您可能想嘗試一下,可能會有所幫助。

  var today = new Date(); var day = today.getDate(); var month = today.getMonth()+1; //January is 0! var year = today.getFullYear(); if(day<10) { day = `0${day}` } if(month<10) { month = `0${month}` } today = `${month} / ${day} / ${year}`; alert(`Today's date is "${today}"`); 

更換

var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();

進入

var day = new Date(date).getDate();
var monthIndex = new Date(date).getMonth();
var year = new Date(date).getFullYear();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM