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 ... (Eastern Standard Time) has no method MMDDYYYY.

当たり前かもしれませんが、プロトタイプの作り方がわかりません。jQuery の使用は許容されます。

4

2 に答える 2

2

問題はスコープではないと思いますが、どのようにobjDateを作成しますか?何度か試しましたが、objDateが文字列の場合にエラーが発生します。objDate = Date()したがって、このコードスニペットは期待どおりに機能します。問題は、DateTimeFormatに渡されるパラメーターです。'は、の代わりにこのように作成されると思いますobjDate = new Date()。後者は、文字列形式で日付を返す代わりに、Dateオブジェクトを正しく作成します。

于 2013-01-29T17:19:53.553 に答える
1

問題は、関数に文字列を渡そうとしていることですDateTimeFormat

これを追加することで、日付オブジェクトであることを確認できます...

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