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