Nhận tên tháng từ ngày


Câu trả lời:


1137

Phiên bản ngắn hơn:

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

const d = new Date();
document.write("The current month is " + monthNames[d.getMonth()]);

Lưu ý (2019-03-08) - Câu trả lời này của tôi mà tôi đã viết ban đầu vào năm 2009 đã lỗi thời. Xem câu trả lời của David Store cho một giải pháp tốt hơn.


401
có một chút bực bội rằng ngay cả khi new Date()quay trở lại Tue Sep 06 2011 20:02:25 GMT+0200 (CEST), điều đó có nghĩa rõ ràng là đối tượng Ngày đã có tất cả điều này được xác định bên trong (tên ngày và tháng trong tuần), nó không được công khai, vì vậy chúng ta phải nhập lại tất cả. :(
zanona

9
Không phải là một giải pháp lý tưởng nếu người ta phải bao gồm tên tháng cho mỗi ngôn ngữ được hỗ trợ. Có một cách tốt hơn để sử dụng String#splitvới toStringhoặc toDateString.
Ryan

23
nhiều ngôn ngữ = mảng đa chiều;) bản dịch ["tháng Tên"] [currentL Language] [d.getMonth ()]
mộng

25
@ zanona, một đối tượng ngày không nhất thiết phải có "tất cả điều này được xác định bên trong". Tất cả những gì được yêu cầu trong ECMA-262 là một giá trị thời gian , là một con số. Những gì bạn đang thấy là kết quả của Date.prototype.toString , phụ thuộc vào việc triển khai.
RobG

9
@Devin nhưng điều đó phân bổ lại mảng mỗi khi bạn muốn truy cập nó.
Cole Johnson

775

Bây giờ có thể làm điều này với API quốc tế hóa ECMAScript:

const date = new Date(2009, 10, 10);  // 2009-11-10
const month = date.toLocaleString('default', { month: 'long' });
console.log(month);

'long'sử dụng tên đầy đủ của tháng, 'short'cho tên ngắn và 'narrow'cho phiên bản tối thiểu hơn, chẳng hạn như chữ cái đầu tiên trong các ngôn ngữ bảng chữ cái.

Bạn có thể thay đổi ngôn ngữ từ trình duyệt 'default'thành bất kỳ ngôn ngữ nào bạn muốn (ví dụ 'en-us') và nó sẽ sử dụng đúng tên cho ngôn ngữ / quốc gia đó.

Với toLocaleStringapi, bạn phải vượt qua miền địa phương và các tùy chọn mỗi lần. Nếu bạn định sử dụng cùng một thông tin định dạng và tùy chọn định dạng vào nhiều ngày khác nhau, bạn có thể sử dụng Intl.DateTimeFormatthay thế:

const formatter = new Intl.DateTimeFormat('fr', { month: 'short' });
const month1 = formatter.format(new Date());
const month2 = formatter.format(new Date(2003, 5, 12));
console.log(`${month1} and ${month2}`); // current month in French and "juin".

Để biết thêm thông tin, hãy xem bài đăng trên blog của tôi về API quốc tế hóa .


1
Tôi có thể xác nhận rằng Safari Technology Preview có hỗ trợ cho việc này. Tôi nghĩ nên là câu trả lời được chấp nhận
Salman Hasrat Khan

1
Hoạt động trong nút quá!
mikemaccana

4
Giải pháp tuyệt vời, nhưng đối với trường hợp sử dụng của tôi, điều này đã kết thúc quá chậm. Tôi đã xử lý hàng trăm mặt hàng và trung bình khoảng 1ms cho mỗi mặt hàng để có được cả tháng và năm (chrome, safari). Tôi đã kết thúc bằng cách sử dụng câu trả lời được chấp nhận nhưng chỉ vì nó thực hiện tốt hơn nhiều. Đây sẽ là phương pháp ưa thích của tôi nếu tôi chỉ cần gọi nó một vài lần.
t.888

7
Điều này hiện được hỗ trợ trên hầu hết các trình duyệt: caniuse.com/#search=intl
eyal83

2
Lưu ý trên React Native, tính năng này hoạt động cho các thiết bị iOS, nhưng trên Android, nó hiển thị không chính xác (chỉ cần nhổ toàn bộ dấu thời gian).
hardanger

162

Đây là một cái khác, với sự hỗ trợ cho bản địa hóa :)

Date.prototype.getMonthName = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names[this.getMonth()];
};

Date.prototype.getMonthNameShort = function(lang) {
    lang = lang && (lang in Date.locale) ? lang : 'en';
    return Date.locale[lang].month_names_short[this.getMonth()];
};

Date.locale = {
    en: {
       month_names: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
       month_names_short: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    }
};

sau đó bạn có thể dễ dàng thêm hỗ trợ cho các ngôn ngữ khác:

Date.locale.fr = {month_names: [...]};

2
Lưu ý điều này sẽ không hoạt động trên nút như của 6.x như Date.localeundefined. đó là một câu trả lời tuyệt vời cho các triển khai JS khác!
mikemaccana

Điều này có thể có ý nghĩa nếu các mảng tên được bản địa hóa được xây dựng bằng Date.prototype.toLocaleString . Ngoài ra, mở rộng các nguyên mẫu và đối tượng tích hợp không được coi là một ý tưởng tốt.
RobG

62

Nếu bạn không muốn mở rộng nguyên mẫu Ngày (và có một số lý do chính đáng để không muốn làm điều này), bạn thực sự có thể đưa ra một phương pháp rất dễ dàng:

Date.prototype.monthNames = [
    "January", "February", "March",
    "April", "May", "June",
    "July", "August", "September",
    "October", "November", "December"
];

Date.prototype.getMonthName = function() {
    return this.monthNames[this.getMonth()];
};
Date.prototype.getShortMonthName = function () {
    return this.getMonthName().substr(0, 3);
};

// usage:
var d = new Date();
alert(d.getMonthName());      // "October"
alert(d.getShortMonthName()); // "Oct"

Các hàm này sau đó sẽ áp dụng cho tất cả các đối tượng Ngày javascript.


6
"Và có một số lý do tốt để không muốn làm điều này". Chỉ tò mò: những lý do nào bạn có nghĩa là?
KooiInc

13
@Kooilnc: Đó là vì về cơ bản bạn đang làm việc trong không gian toàn cầu. Nếu bạn nhập các chức năng hoặc thư viện của người khác cũng thực hiện việc này, thì họ có thể ghi đè lên nhau.
nickf

61

Tôi chân thành giới thiệu formatchức năng từ, thư viện khoảnh khắc , mà bạn có thể sử dụng như thế này:

moment().format("MMM");  // "Apr" - current date
moment(new Date(2012, 01, 04)).format("MMM");  // "Feb" - from a local date
moment.utc(new Date(2012, 00, 04).format("MMM"); // "Jan" - from a UTC date

Sử dụng "MMMM" thay vì "MMM" nếu bạn cần tên đầy đủ của tháng

Ngoài một danh sách dài các tính năng khác, nó có hỗ trợ mạnh mẽ cho quốc tế hóa .


2
Người đầu tiên sẽ dẫn đến "Tháng Tư". "MMM" hiển thị ba chữ cái đầu tiên của tháng, nếu bạn muốn tên đầy đủ sử dụng "MMMM" thay thế. Xem tài liệu của họ để được giúp đỡ.
Tomnar

Nếu bạn đang đi theo con đường tối ưu hóa nặng nề và giảm các yêu cầu http, đây có thể không phải là một lựa chọn cho bạn. Thay vào đó, hãy chỉ sử dụng một mảng tên tháng nếu bạn chỉ định dạng tên tháng trong một dòng mã.
OzzyTheGiant

3
Khoảnh khắc là một thư viện rất lớn và quá mức cho việc này. Các lựa chọn thay thế hiện đại bao gồm Luxondate-fns, nhưng sau đó, một lần nữa, có hỗ trợ trình duyệt rộng rãi cho API quốc tế hóa hiện nay .
Dan Dascalescu

21
Date.prototype.getMonthName = function() {
    var monthNames = [ "January", "February", "March", "April", "May", "June", 
                       "July", "August", "September", "October", "November", "December" ];
    return monthNames[this.getMonth()];
}

Nó có thể được sử dụng như

var month_Name = new Date().getMonthName();

18

Một số quy trình dễ dàng phổ biến từ đối tượng ngày có thể được thực hiện bằng cách này.

var monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];
var monthShortNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];

function dateFormat1(d) {
  var t = new Date(d);
  return t.getDate() + ' ' + monthNames[t.getMonth()] + ', ' + t.getFullYear();
}

function dateFormat2(d) {
  var t = new Date(d);
  return t.getDate() + ' ' + monthShortNames[t.getMonth()] + ', ' + t.getFullYear();
}

console.log(dateFormat1(new Date()))
console.log(dateFormat2(new Date()))

Hoặc bạn có thể tạo nguyên mẫu ngày như

Date.prototype.getMonthName = function() {
  var monthNames = ["January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
  ];
  return monthNames[this.getMonth()];
}


Date.prototype.getFormatDate = function() {
  var monthNames = ["January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
  ];
  return this.getDate() + ' ' + monthNames[this.getMonth()] + ', ' + this.getFullYear();
}


console.log(new Date().getMonthName())
console.log(new Date().getFormatDate())

Ví dụ:

var dateFormat3 = new Date().getMonthName(); # March

var dateFormat4 = new Date().getFormatDate(); # 16 March, 2017


2
Cảm ơn! Tôi chưa hiểu nguyên mẫu, nhưng tôi mong được dùng thử.
Eric Hepperle - CodeSlayer2010

17

Bạn có thể sử dụng datejs để làm điều đó. Kiểm tra FormatSpecifier , MMMM cung cấp cho bạn tên của tháng:

var objDate = new Date("10/11/2009");
document.write(objDate.toString("MMMM"));

Và datejs đã được bản địa hóa cho hơn 150 địa phương! Xem tại đây


12

Thử:

var objDate = new Date("10/11/2009");

var strDate =
    objDate.toLocaleString("en", { day: "numeric" }) + ' ' +
    objDate.toLocaleString("en", { month: "long"  }) + ' ' +
    objDate.toLocaleString("en", { year: "numeric"});

Điều này đã làm việc trong mùa đông 2017! Sử dụng "en-us" theo đề xuất của những người dùng khác 3 năm trước hoặc lâu hơn không hoạt động trong Chrome.
Eric Hepperle - CodeSlayer2010

9

Đây là một cách không phụ thuộc vào một mảng mã hóa cứng và hỗ trợ nhiều địa phương.

Nếu bạn cần một mảng toàn bộ:

var monthsLocalizedArray = function(locale) {
    var result = [];
    for(var i = 0; i < 12; i++) {
        result.push(new Date(2010,i).toLocaleString(locale,{month:"long"}));
    }
    return result;
};

Sử dụng:

console.log(monthsLocalizedArray('en')); // -> ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
console.log(monthsLocalizedArray('bg')); // -> ["януари", "февруари", "март", "април", "май", "юни", "юли", "август", "септември", "октомври", "ноември", "декември"]

Nếu bạn chỉ cần một tháng được chọn (nhanh hơn):

var monthLocalizedString = function(month, locale) {
    return new Date(2010,month).toLocaleString(locale,{month:"long"});
};

Sử dụng:

console.log(monthLocalizedString(1, 'en')); // -> February
console.log(monthLocalizedString(1, 'bg')); // -> февруари
console.log(monthLocalizedString(1, 'de')); // -> Februar

Đã thử nghiệm và hoạt động tốt trên Chrome và IE 11. Trên mozilla, một số sửa đổi là cần thiết, bởi vì nó trả về toàn bộ ngày.


Điều này sẽ không hoạt động ngay cả trong an toàn chưa. Bởi vìtoLocaleString
Sergei Panfilov

8

Thật không may, cách tốt nhất để trích xuất tên tháng là từ đại diện UTCString:

Date.prototype.monthName = function() {
    return this.toUTCString().split(' ')[2]
};

d = new Date();
//=> Thu Mar 06 2014 23:05:21 GMT+0000 (GMT)

d.monthName();
//=> 'Mar'

8

Thay vì khai báo mảng chứa tất cả tên tháng và sau đó trỏ bằng một chỉ mục, chúng ta cũng có thể viết nó trong một phiên bản ngắn hơn như dưới đây:

var objDate = new Date().toLocaleString("en-us", { month: "long" }); // result: August
var objDate = new Date().toLocaleString("en-us", { month: "short" }); // result: Aug

xin lưu ý rằng điều này không hoạt động đáng tin cậy trên các trình duyệt ... Safari (thiết bị di động và máy tính để bàn) sẽ xuất ra một cái gì đó tương tự: MAY 1, 2015 AT 12:00:00 AM GMT-4(khi sử dụng { month: "long" }tham số)
David M.

1
bạn cũng có thể lấy mặc định bằng cách sử dụngnew Date().toLocaleString(navigator.language, { month: "short" })
Remo H. Jansen


7

Định dạng tự nhiên ngày nay là sử dụng Moment.js.

Cách lấy tháng theo định dạng chuỗi, rất đơn giản trong Moment.js không cần mã cứng tên tháng trong mã của bạn: Để có được định dạng tên tháng và năm hiện tại và tháng đầy đủ (tháng 5 năm 2015):

  moment(new Date).format("MMMM YYYY");

với thời điểm đã được cài đặt cho các mục đích khác, đây là giải pháp đơn giản nhất.
Hỗ trợ CFP

1
Khoảnh khắc là một thư viện rất lớn và quá mức cho việc này. Các lựa chọn thay thế hiện đại bao gồm Luxondate-fns, nhưng sau đó, một lần nữa, có hỗ trợ trình duyệt rộng rãi cho API quốc tế hóa hiện nay .
Dan Dascalescu

7

Một cách khác để định dạng ngày

new Date().toLocaleString('en-us',{month:'long', year:'numeric', day:'numeric'}) //output: "May 21, 2019"

6

Bạn có thể sử dụng một trong một số trình định dạng Ngày có sẵn. Vì điều này nằm trong đặc tả JavaScript, nên nó sẽ có sẵn ở cả chế độ phía trình duyệt và phía máy chủ.

objDate.toString().split(" ")[1]; // gives short name, unsure about locale 
objDate.toLocaleDateString.split(" ")[0]; // gives long name

ví dụ

js> objDate = new Date(new Date() - 9876543210)
Mon Feb 04 2013 12:37:09 GMT-0800 (PST)
js> objDate.toString().split(" ")[1]
Feb
js> objDate.toLocaleString().split(" ")[0]
February

Có nhiều hơn tại https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date


4

Nếu bạn không muốn sử dụng thư viện bên ngoài hoặc lưu trữ một loạt tên tháng hoặc nếu API quốc tế hóa ECMAScript không đủ tốt vì khả năng tương thích trình duyệt, bạn luôn có thể thực hiện theo cách cũ bằng cách trích xuất thông tin từ đầu ra ngày:

var now = new Date();
var monthAbbrvName = now.toDateString().substring(4, 7);

Điều này sẽ cung cấp cho bạn tên tháng viết tắt, ví dụ: Tháng Mười. Tôi tin rằng ngày sẽ có đủ loại định dạng tùy thuộc vào khởi tạo và ngôn ngữ của bạn, vì vậy hãy xem những gì toDateString()trả về và tính toán lại các substring()giá trị của bạn dựa trên đó.


3

Nếu bạn đang sử dụng jQuery, có lẽ bạn cũng đang sử dụng Giao diện người dùng jQuery, điều đó có nghĩa là bạn có thể sử dụng $ .datepicker.formatDate () .

$.datepicker.setDefaults( $.datepicker.regional[ "nl" ] );   // dutch
$.datepicker.formatDate( "dd MM yy", objDate );

3

Giải pháp tốt nhất của tôi là như sau:

       var dateValue = Date();
       var month = dateValue.substring(4,7);
       var date = dateValue.substring(8,10);
       var year = dateValue.substring(20,24);
       var finaldateString = date+"-"+month+"-"+year;

có vẻ khá dễ vỡ đối với tôi ... và nó không thực sự trả lời câu hỏi của OP
David M.

1
Điều gì làm cho đây là "Giải pháp tốt nhất" của bạn?
Dan Dascalescu

3

Với Momentjs , chỉ cần sử dụng ký hiệu định dạng .

const myDate = new Date()
const shortMonthName = moment(myDate).format('MMM') // Aug
const fullMonthName = moment(myDate).format('MMMM') // August

1
Bên cạnh câu trả lời này đã được đưa ra 2 lần rồi, momentlà một thư viện rất lớn và quá mức cho việc này. Các lựa chọn thay thế hiện đại bao gồm Luxondate-fns, nhưng sau đó, một lần nữa, có hỗ trợ trình duyệt rộng rãi cho API quốc tế hóa hiện nay .
Dan Dascalescu

3

Điều này cũng có thể được thực hiện nếu bạn đang sử dụng kendo.

kendo.toString(dateobject, "MMMM");

Dưới đây là danh sách các trình định dạng từ trang web kendo :

"D" Hiển thị ngày trong tháng, từ 1 đến 31.

"Dd" Ngày trong tháng, từ 01 đến 31.

"Ddd" Tên viết tắt của ngày trong tuần.

"Dddd" Tên đầy đủ của ngày trong tuần.

"f" Phần mười của một giây trong giá trị ngày và thời gian.

"ff" Một phần trăm giây trong giá trị ngày và thời gian.

"fff" Các mili giây trong một giá trị ngày và thời gian.

"M" Tháng, từ 1 đến 12.

"MM" Tháng, từ 01 đến 12.

"MMM" Tên viết tắt của tháng.

"MMMM" Tên đầy đủ của tháng.

"H" Giờ, sử dụng đồng hồ 12 giờ từ 1 đến 12.

"hh" Giờ, sử dụng đồng hồ 12 giờ từ 01 đến 12.

"H" Giờ, sử dụng đồng hồ 24 giờ từ 1 đến 23.

"HH" Giờ, sử dụng đồng hồ 24 giờ từ 01 đến 23.

"m" Phút, từ 0 đến 59.

"Mm" Phút, từ 00 đến 59.

"s" Thứ hai, từ 0 đến 59.

"Ss" Thứ hai, từ 00 đến 59.

"tt" Nhà chỉ định AM / PM.

"yy" Hai ký tự cuối cùng từ giá trị năm.

"yyyy" Năm đầy giá trị.

"zzz" Múi giờ địa phương khi sử dụng các định dạng để phân tích chuỗi ngày UTC.


2

Nếu bạn không muốn sử dụng thời điểm và muốn hiển thị tên tháng -

.config($mdDateLocaleProvider) {
    $mdDateLocaleProvider.formatDate = function(date) {      
      if(date !== null) {
        if(date.getMonthName == undefined) {
          date.getMonthName = function() {
            var monthNames = [ "January", "February", "March", "April", "May", "June", 
            "July", "August", "September", "October", "November", "December" ];
            return monthNames[this.getMonth()];
          }
        }        
        var day = date.getDate();
        var monthIndex = date.getMonth();
        var year = date.getFullYear();
        return day + ' ' + date.getMonthName() + ' ' + year;
      }
    };
  }

2

Đối với tôi đây là giải pháp tốt nhất là,

cho TypeScript là tốt

const env = process.env.REACT_APP_LOCALE || 'en';

const namedMonthsArray = (index?: number): string[] | string => {
  const months = [];

  for (let month = 0; month <= 11; month++) {
    months.push(
      new Date(new Date('1970-01-01').setMonth(month))
        .toLocaleString(env, {
          month: 'long',
        })
        .toString(),
    );
  }
  if (index) {
    return months[index];
  }
  return months;
};

Đầu ra là

["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

2

Bạn chỉ có thể sử dụng Date.toLocaleDateString () và phân tích ngày muốn làm tham số

const event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

const options = {  year: 'numeric', month: 'short', day: 'numeric' };

console.log(event.toLocaleDateString('de-DE', options));
// expected output: Donnerstag, 20. Dezember 2012

console.log(event.toLocaleDateString('en-US', options));
// US format 


// In case you only want the month
console.log(event.toLocaleDateString(undefined, { month: 'short'}));
console.log(event.toLocaleDateString(undefined, { month: 'long'}));

Bạn có thể tìm thêm thông tin trong tài liệu Firefox


1

Lưu trữ tên trong một mảng và tra cứu theo chỉ số của tháng.

var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";

document.write("The current month is " + month[d.getMonth()]);

Phương thức JavaScript getMonth ()


22
Tại sao không var month = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];?
Ngắn

1

Tôi có một giải pháp một phần mà tôi đã đưa ra. Nó sử dụng một biểu thức thông thường để trích xuất tên tháng và ngày. Nhưng khi tôi xem qua các tùy chọn Vùng và Ngôn ngữ (Windows), tôi nhận ra rằng các nền văn hóa khác nhau có thứ tự định dạng khác nhau ... có lẽ một mẫu biểu thức chính quy tốt hơn có thể hữu ích.

function testDateInfo() {
        var months = new Array();
        var days = new Array();
        var workingDate = new Date();
        workingDate.setHours(0, 0, 0, 0);
        workingDate.setDate(1);
        var RE = new RegExp("([a-z]+)","ig");
        //-- get day names 0-6
        for (var i = 0; i < 7; i++) {

            var day = workingDate.getDay();
            //-- will eventually be in order
            if (days[day] == undefined)
                days[day] = workingDate.toLocaleDateString().match(RE)[0];
            workingDate.setDate(workingDate.getDate() + 1);
        }
        //--get month names 0-11
        for (var i = 0; i < 12; i++) {
            workingDate.setMonth(i);
            months.push(workingDate.toLocaleDateString().match(RE)[1]);
        }
        alert(days.join(",") + " \n\r " + months.join(","));
    }

vì vậy, tối thiểu nó hoạt động với tiếng Anh và tiếng Tây Ban Nha ... id nghi ngờ bất cứ điều gì đó là NGÀY, ngày THÁNG, năm FORMAT
Remus

Tôi đã xem xét một chút, tôi nghĩ rằng để có một giải pháp độc lập ngôn ngữ thực sự, bạn sẽ cần có một biểu thức chính quy sử dụng phạm vi ký tự UNICODE. Phạm vi ký tự sẽ khác nhau đối với các bảng chữ cái khác nhau vì vậy tôi không nghĩ sẽ có một kích thước phù hợp với tất cả RegExp mà chúng ta có thể sử dụng.
Remus

0

Chỉ cần mở rộng ra nhiều câu trả lời xuất sắc khác - nếu bạn đang sử dụng jQuery - bạn có thể làm một cái gì đó như

$.fn.getMonthName = function(date) {

    var monthNames = [
    "January", "February", "March",
    "April", "May", "June",
    "July", "August", "September",
    "October", "November", "December"
    ];

    return monthNames[date.getMonth()];

};

nơi datebằng với var d = new Date(somevalue). Ưu điểm chính của điều này là per @nickf nói về việc tránh không gian tên toàn cầu.


0

Để có được một mảng tên tháng:

Date.monthNames = function( ) {
var arrMonth = [],
    dateRef = new Date(),
    year = dateRef.getFullYear();

dateRef.setMonth(0);
while (year == dateRef.getFullYear()) {
    /* push le mois en lettre et passe au mois suivant */
    arrMonth.push( (dateRef.toLocaleString().split(' '))[2] );
    dateRef.setMonth( dateRef.getMonth() + 1);
}

return arrMonth;
}

alert(Date.monthNames().toString());

// -> janvier,février,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre

http://jsfiddle.net/polinux/qb346/


0

Chỉ cần viết một trình bao bọc đơn giản xung quanh toLocaleString:

function LocalDate(locale) {
  this.locale = locale;
}

LocalDate.prototype.getMonthName = function(date) {
  return date.toLocaleString(this.locale,{month:"long"});
};

var objDate = new Date("10/11/2009");

var localDate = new LocalDate("en");
console.log(localDate.getMonthName(objDate));

localDate.locale = "ru";
console.log(localDate.getMonthName(objDate));

localDate.locale = "zh";
console.log(localDate.getMonthName(objDate));


0

Một hack nhanh tôi đã sử dụng mà hoạt động tốt:

const monthNumber = 8;
const yearNumber = 2018;
const date = `${['Jan', 'Feb', 'Mar', 'Apr',
  'May', 'Jun', 'Jul', 'Aug',
  'Sep', 'Oct', 'Nov', 'Dec'][monthNumber - 1]
      } ${yearNumber}`;

console.log(date);

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.