我正在使用日曆插件,並且該插件有幾個回調事件,允許您自定義用戶單擊日期時發生的情況等。設置此的一種方法是對我而言,如下:Javascript日期對象和Date.prototype自定義
onDayClick: function(e) {
window.location.href = 'http://www.testdomain.com/events/day/' + e.data.date;
}
.date
是date object如此,如果點擊,例如,將返回:
http://www.testdomain.com/events/day/Thu Jun 2012 2014 2000:00:00 GMT+0100 (BST)
我需要的是期望的輸出:
http://www.testdomain.com/events/day/2014/07/17/
並查看了日期對象文檔,我認爲這相當簡單。
Date.prototype.GetCustomFormat = function() {
return this.getFullYear()+'/'+getInTwoDigitFormat(this.getMonth())+'/'+getInTwoDigitFormat(this.getDate());
};
function getInTwoDigitFormat(val) {
return val < 10 ? '0' + val : val;
}
onDayClick: function(e) {
window.location.href = 'http://www.testdomain.com/events/day/' + e.data.date.GetCustomFormat();
}
但是,這是什麼帶來回來,當點擊,是正確的一年......但錯誤的月份1和錯誤的日期幾天。奇怪的。所以我增加了一些門店並增加了一個UTC月...
return this.getFullYear()+'/'+getInTwoDigitFormat(this.getUTCMonth()+1)+'/'+getInTwoDigitFormat(this.getDate());
這似乎現在工作。但是,如果我有一次登陸的事件...它使用前一個月的第一個事件。所以,如果我點擊7月1日,它將返回6月1日。
我想我正在抓住它......但這裏和那裏有一些奇怪的結果。任何人都可以發現我出錯的地方,並讓我正確嗎?
感謝
奇怪的部分是它也帶來了錯誤的一天。預計該月爲-1,因爲其零指數。 – DontVoteMeDown
因爲這是UTC月份,假設你在7月1日_MMT + 0100_ _midnight_,那麼UTC月份會少一點是不正常的呢? –