3

我需要将日期对象转换为 SQL Server 可以理解的字符串。这是我到目前为止所拥有的:

(function() {
    Date.prototype.MMDDYYYY = function() {
        var month, day, year;
        month = String(this.getMonth() + 1);
        if (month.length === 1) {
            month = "0" + month;
        }
        day = String(this.getDate());
        if (day.length === 1) {
            day = "0" + day;
        }
        year = String(this.getFullYear());
        return month + '/' + day + '/' + year;
    }
})();

(function() {
    Date.prototype.HHMMSS = function() {
        var hour, minute, second;
        hour = String(this.getHours());
        minute = String(this.getMinutes());
        second = String(this.getSeconds());
        return '' + hour + ':' + minute + ':' + second;
    }
})();


function DateTimeFormat(objDate) {
    return objDate.MMDDYYYY() + ' ' + objDate.HHMMSS();
}

我得到的错误是: Object Tue Jan 29 ...(东部标准时间)没有方法 MMDDYYYY。

这可能很明显,但我不明白如何制作原型。使用 jQuery 是可以接受的。

4

2 回答 2

2

我认为问题不在于范围,而是如何创建 objDate!我做了几次尝试,当 objDate 是一个字符串时会出现这个错误。所以,这段代码按预期工作,问题是传递给 DateTimeFormat 的参数:我认为它是这样创建的,objDate = Date()而不是objDate = new Date(). 后者将正确创建一个 Date 对象,而不是返回 String 格式的日期。

于 2013-01-29T17:19:53.553 回答
1

问题是您将字符串传递给函数DateTimeFormat

你可以通过添加这个来确保它是一个日期对象......

objDate = new Date(objDate)
于 2013-01-29T17:04:28.903 回答