Maak naam van Datum

Hoe kan ik de naam van de maand (bijv. oktober/oktober) genereren op basis van dit datumobject in JavaScript?

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

Antwoord 1, autoriteit 100%

Kortere versie:

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

Antwoord 2, autoriteit 82%

Het is nu mogelijk om dit te doen met de ECMAScript Internationalization API:

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

Antwoord 3, autoriteit 13%

Hier is er nog een, met ondersteuning voor lokalisatie 🙂

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

je kunt dan eenvoudig ondersteuning voor andere talen toevoegen:

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

Antwoord 4, autoriteit 5%

Ik beveel de functie formatvan harte aan, de moment.js-bibliotheek, die u als volgt kunt gebruiken:

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

Gebruik “MMMM” in plaats van “MMM” als u de volledige naam van de maand nodig heeft

Naast een lange lijst met andere functies, heeft het sterke ondersteuning voor internationalisering.


5, Autoriteit 2%

U kunt gewoon de datum gebruiken. Tolocaledatestring () en parseren van de datum die als parameter

is

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

6, Autoriteit 2%

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

het kan worden gebruikt als

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

7, Autoriteit 2%

document.write(new Date().toLocaleString('en-us',{month:'long', year:'numeric', day:'numeric'}))

Antwoord 8, autoriteit 2%

Hiermee kan een eenvoudig proces van datumobject worden gedaan.

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

Antwoord 9

U kunt hiervoor datejsgebruiken. Controleer de FormatSpecifiers, MMMM geeft je de naam van de maand:

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

En datejs heeft dat gelokaliseerd voor meer dan 150 landen! Zie hier


Antwoord 10

Probeer:

var objDate = new Date("10/11/2009");
var strDate =
    objDate.toLocaleString("en", { day: "numeric" }) + ' ' +
    objDate.toLocaleString("en", { month: "long"  }) + ' ' +
    objDate.toLocaleString("en", { year: "numeric"});

11

Nog een manier om datum te formatteren

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

12

Hier is een manier die niet afhankelijk is van een hard-gecodeerde array en ondersteunt meerdere locaties.

Als u een hele array nodig hebt:

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

Gebruik:

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

Als u alleen een geselecteerde maand (sneller) nodig hebt:

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

Gebruik:

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

Getest en werkt prima op chroom en dat wil zeggen 11. Op Mozilla zijn enkele wijzigingen nodig, omdat het de hele datum retourneert.


13

In plaats van de array te verklaren die de naam van de maand vasthouden en vervolgens met een index wijzen, kunnen we het ook in een kortere versie schrijven zoals hieronder:

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

14

Helaas is de beste manier om de naam van de maand te extraheren, is van de UTCSTRING-vertegenwoordiging:

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'

15

Het natuurlijke formaat is deze dagen om Moment.js te gebruiken.

De manier om de maand in een string-indeling te krijgen, is erg eenvoudig in moment.Js geen behoefte aan harde code de maandnamen in uw code:
Om de huidige maand en het jaar in maand-naamformaat en het volledige jaar (mei 2015) te krijgen:

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

16

U kunt een van de verschillende beschikbare datumformaatjes gebruiken. Sinds deze valt binnen de JavaScript-specificatie, is deze verkrijgbaar in zowel browser- als serverzijdige modi.

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

bijv.

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

Er zijn er meer op https://developer. mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date


Antwoord 17

Getest op IE 11, Chrome, Firefox

const dt = new Date();
const locale = navigator.languages != undefined ? navigator.languages[0] : navigator.language;
const fullMonth = dt.toLocaleDateString(locale, {month: 'long'});
console.log(fullMonth);

Antwoord 18

Als u geen externe bibliotheek wilt gebruiken, of een reeks maandnamen wilt opslaan, of als de ECMAScript Internationalization API niet goed genoeg is vanwege browsercompatibiliteit, kunt u dit altijd op de ouderwetse manier doen door de info van de datumoutput:

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

Hierdoor krijgt u de afgekorte naam van de maand, bijv. Okt. Ik geloof dat de datum in allerlei formaten zal komen, afhankelijk van de initialisatie en uw landinstelling, dus kijk eens naar wat toDateString()retourneert en bereken uw substring()opnieuw waarden op basis daarvan.


Antwoord 19

Dit kan ook worden gedaan als je kendo gebruikt.

kendo.toString(dateobject, "MMMM");

Hier is een lijst met formatters van kendo-site:

“d” Geeft de dag van de maand weer, van 1 tot en met 31.

“dd” De dag van de maand, van 01 tot en met 31.

“ddd” De afgekorte naam van de dag van de week.

“dddd” De volledige naam van de dag van de week.

“f” De tienden van een seconde in een datum- en tijdwaarde.

“ff” De honderdsten van een seconde in een datum- en tijdwaarde.

“fff” De milliseconden in een datum- en tijdwaarde.

“M” De maand, van 1 tot en met 12.

“MM” De maand, van 01 tot en met 12.

“MMM” De afgekorte naam van de maand.

“MMMM” De volledige naam van de maand.

“h” Het uur, met een 12-uurs klok van 1 tot 12.

“hh” Het uur, met een 12-uurs klok van 01 tot 12.

“H” Het uur, met een 24-uurs klok van 1 tot 23.

“HH” Het uur, met een 24-uurs klok van 01 tot 23.

“m” De minuut, van 0 tot 59.

“mm” De minuut, van 00 tot 59.

“s” De tweede, van 0 tot 59.

“ss” De tweede, van 00 tot 59.

“tt” De AM/PM-aanduiding.

“yy” De laatste twee tekens van de jaarwaarde.

“yyyy” De volledige waarde van het jaar.

“zzz” De lokale tijdzone bij het gebruik van notaties om UTC-datumstrings te ontleden.


Antwoord 20

U kunt omgaan met of zonder vertaling naar de lokale taal

  1. Genereert waarde als “11 okt 2009”
const objDate = new Date("10/11/2009");
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
if (objDate !== 'Invalid Date' && !isNaN(objDate)) {
  console.log(objDate.getDate() + ' ' + months[objDate.getMonth()] + ' ' + objDate.getFullYear())
}

Antwoord 21

Je kunt dit proberen:

let d = new Date(),
  t = d.toDateString().split(" ");
console.log(t[2] + " " + t[1] + " " + t[3]);

Antwoord 22

Als u jQuery gebruikt, gebruikt u waarschijnlijk ook de gebruikersinterface van jQuery, wat betekent dat u $ kunt gebruiken. datepicker.formatDate().

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

Antwoord 23

Mijn beste oplossing is als volgt:

      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;

Antwoord 24

Gebruik bij momentjsgewoon de formaatnotatie.

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

Antwoord 25

Voor mij is dit de beste oplossing,

ook voor TypeScript

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

Uitvoer is

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

Antwoord 26

Het kan ook als volgt worden gedaan:

var x = new Date().toString().split(' ')[1];    // "Jul"

Antwoord 27

Als je haast hebt…hier ga je!

const date = new Date(Date.now());
date.toLocaleString('en-US', {month: 'short'}); // {month:'long'}

Verwachte output: "Apr"


Antwoord 28

Als we onze invoer moeten doorgeven, moeten we de volgende manier gebruiken

invoer:’28-12-2020′

Code:

new Date('2020-12-28').toLocaleString('en-us',{month:'short', year:'numeric'})

Uitvoer:“december 2020”


Antwoord 29

Als je geen moment wilt gebruiken en de naam van de maand wilt weergeven –

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

Other episodes