문제

이 날짜 객체에서 JavaScript에서 달의 이름 (예 : 10 월/10 월)의 이름을 어떻게 생성 할 수 있습니까?

var objDate = new Date("10/11/2009");
도움이 되었습니까?

해결책

짧은 버전 :

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()]);

메모 (2019-03-08)-내가 원래 2009 년에 쓴이 답변은 구식입니다. 보다 David Storey의 대답 더 나은 솔루션을 위해.

다른 팁

이제 ECMAScript Internationalization API를 통해이를 수행 할 수 있습니다.

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

'long' 달의 이름을 사용하고 'short' 짧은 이름과 'narrow' 알파벳 언어의 첫 글자와 같은보다 최소한의 버전.

브라우저에서 로케일을 변경할 수 있습니다 'default' 당신이 기뻐하는 사람에게 (예 : 'en-us'), 그리고 해당 언어/국가에 적합한 이름을 사용합니다.

와 함께 toLocaleStringAPI 매번 로케일과 옵션을 통과해야합니다. 여러 다른 날짜에 동일한 로케일 정보 및 서식 옵션을 사용하는 경우 사용할 수 있습니다. Intl.DateTimeFormat 대신에:

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".

자세한 내용은 내 블로그 게시물을 참조하십시오 국제화 API.

현지화를 지원하는 또 다른 것이 있습니다 :)

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']
    }
};

그런 다음 다른 언어에 대한 지원을 쉽게 추가 할 수 있습니다.

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

날짜 프로토 타입을 연장하는 것이 마음에 들지 않는다면 (그리고 이것을하고 싶지 않은 몇 가지 이유가 있다면) 실제로 매우 쉬운 방법을 제시 할 수 있습니다.

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"

이 기능은 다음에 적용됩니다 모두 JavaScript 날짜 개체.

나는 진심으로 추천합니다 format 기능에서 Moment.js 다음과 같이 사용할 수있는 라이브러리 :

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

달의 이름이 필요한 경우 "mmm"대신 "mmmm"을 사용하십시오.

다른 기능의 긴 목록 외에도 강력합니다. 국제화 지원.

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

그것은 사용할 수 있습니다

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

당신은 사용할 수 있습니다 datejs 하기 위해서. 을 체크하다 형식 스펙시에, mmmm은 당신에게 달의 이름을줍니다.

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

그리고 datejs는 150 개가 넘는 지역을 위해 현지화되었습니다! 여기를 봐

날짜 객체의 일반적인 쉬운 프로세스는 이것으로 수행 할 수 있습니다.

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()))

또는 날짜 프로토 타입을 만들 수 있습니다

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())

전:

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

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

노력하다:

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

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

다음은 하드 코드 어레이에 의존하지 않고 여러 로케일을 지원하는 방법입니다.

전체 배열이 필요한 경우 :

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;
};

용법:

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

선택한 달만 필요한 경우 (빠른) :

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

용법:

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

Chrome 및 IE 11에서 테스트하고 잘 작동합니다. Mozilla에서는 전체 날짜를 반환하기 때문에 일부 수정이 필요합니다.

불행히도 달 이름을 추출하는 가장 좋은 방법은 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'

오늘날 자연스러운 형식은 Moment.js를 사용하는 것입니다.

문자열 형식으로 달을 얻는 방법은 매우 간단합니다.

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

모든 달 이름을 유지 한 다음 인덱스를 가리키는 배열을 선언하는 대신 다음과 같이 짧은 버전으로 작성할 수도 있습니다.

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

사용 가능한 몇 가지 날짜 포피터 중 하나를 사용할 수 있습니다. 이는 JavaScript 사양에 속하므로 브라우저 및 서버 측 모드 모두에서 사용할 수 있습니다.

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

예를 들어

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

더 많은 것이 있습니다 https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/date

와 함께 Momentjs, 그냥 사용하십시오 체재 표기법.

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

이름을 배열에 저장하고 월의 색인으로 찾아보십시오.

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()]);

javaScript getMonth () 메소드

jQuery를 사용하는 경우 jQuery UI를 사용할 수도 있습니다. 즉, 사용할 수 있습니다. $ .datepicker.formatdate ().

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

외부 라이브러리를 사용하거나 월 이름을 저장하고 싶지 않거나 ECMAScript Internationalization API가 브라우저 호환성으로 인해 충분하지 않은 경우 항상 정보를 추출하여 구식 방식으로 항상 수행 할 수 있습니다. 날짜 출력 :

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

이것은 당신에게 약식 월 이름을 줄 것입니다. toDateString() 반환하고 다시 계산합니다 substring() 그것을 기반으로 한 가치.

내 최상의 솔루션은 다음과 같습니다.

       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;

순간을 사용하고 싶지 않고 월 이름을 표시하고 싶다면 -

.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;
      }
    };
  }

Kendo를 사용하는 경우에도 수행 할 수 있습니다.

kendo.toString(dateobject, "MMMM");

다음은 Formatters의 목록입니다 켄도 사이트:

"D"는 매월 1 일부터 31 일까지의 날을 만듭니다.

"DD"는 01에서 31까지의 달의 날입니다.

"DDD"요일의 약식 이름.

"DDDD"요일의 전체 이름.

"F"날짜와 시간 값에서 10 분의 1 초.

"FF"날짜와 시간 값에서 백분의 1 초.

"FFF"날짜와 시간 값으로 밀리 초.

"M"달은 1-12 세입니다.

"MM"은 01에서 12까지의 달.

"음"이달의 약식 이름.

"음"이달의 성명.

"H"시간은 1에서 12까지의 12 시간 시계를 사용합니다.

"HH"시간은 01에서 12까지의 12 시간 시계를 사용합니다.

"H"시간은 1에서 23까지 24 시간 시계를 사용합니다.

"HH"시간은 01에서 23까지 24 시간 시계를 사용합니다.

"M"순간, 0에서 59까지.

"MM"순간, 00에서 59까지.

"S"두 번째는 0에서 59까지.

"SS"두 번째는 00에서 59까지.

"TT"AM/PM 지정자.

"YY"올해의 마지막 두 캐릭터.

"Yyyy"올해의 전체 가치.

"zzz"형식을 사용하여 UTC 날짜 문자열을 구문 분석 할 때 로컬 시간대.

내가 생각해 낸 부분 솔루션이 있습니다. 정규 표현식을 사용하여 월 및 일일 이름을 추출합니다. 그러나 지역과 언어 옵션 (Windows)을 살펴보면 문화가 다른 형식 순서를 가지고 있음을 알고 있습니다. 더 나은 정규 표현 패턴이 유용 할 수 있습니다.

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(","));
    }
function getMonthName(month) 
{ 
return ["January","February","March","April","May","June","July","August","September", "October","November","December"][parseInt(month)-1]
}

날짜를 포맷하는 또 다른 방법

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

jQuery를 사용하는 경우 다른 많은 훌륭한 답변을 확장합니다.

$.fn.getMonthName = function(date) {

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

    return monthNames[date.getMonth()];

};

어디 date 와 같다 var d = new Date(somevalue). 이것의 주요 장점은 글로벌 네임 스페이스를 피하는 것에 대해 @nickf 당시입니다.

월 이름을 얻으려면 :

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/

이 메이트를 사용하십시오

function month(a){
var mNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
return mNames[a-1];
}

간단한 래퍼를 작성하십시오 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));

잘 작동하는 빠른 해킹 :

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);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top