Đối với một cách tiếp cận tự nhiên hơn, hãy thử đoạn này rất ít. Nó hoạt động với Date
đối tượng và cũng giống như một chức năng thường xuyên:
'use strict';
(function(d){
var mL = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var mS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
d.prototype.getLongMonth = d.getLongMonth = function getLongMonth (inMonth) {
return gM.call(this, inMonth, mL);
}
d.prototype.getShortMonth = d.getShortMonth = function getShortMonth (inMonth) {
return gM.call(this, inMonth, mS);
}
function gM(inMonth, arr){
var m;
if(this instanceof d){
m = this.getMonth();
}
else if(typeof inMonth !== 'undefined') {
m = parseInt(inMonth,10) - 1; // Subtract 1 to start January at zero
}
return arr[m];
}
})(Date);
Bạn có thể trực tiếp sao chép và dán, sau đó sử dụng nó như thế này:
var today = new Date();
console.log(today.getLongMonth());
console.log(Date.getLongMonth(9)); // September
console.log(today.getShortMonth());
console.log(Date.getShortMonth('09')); // Sept
Kỹ thuật này sẽ cung cấp sự linh hoạt như thế nào bạn chỉ số và cách bạn truy cập nó. Khi sử dụng đối tượng Date
, nó sẽ hoạt động chính xác, nhưng nếu sử dụng nó như một hàm độc lập, nó sẽ xem xét các tháng ở định dạng có thể đọc được từ 1-12.
Fiddle with it!
Để được rõ ràng bạn đang tạo một đối tượng không phải là một mảng. Bạn đang thực sự xác định các thuộc tính của tháng. Vì lý do này bạn sẽ không nhận được những gì bạn mong đợi nếu bạn 'alert (month.length);' – qw3n
Xin lỗi, tôi nên nói, im tạo một đối tượng mảng mới ... –
Tôi là người duy nhất đến đây chỉ để sao chép- dán mảng tháng từ câu trả lời? (bởi vì tôi quá lười biếng để viết một mình) –