¿Hay una manera de agregar un código de formato personalizado al momento para las fechas largas en función de la configuración regional?
por ejemplo:
moment().format("L")
es un formato existente que imprimirá la fecha larga para la configuración regional (incluido el año), pero si quisiera agregar el mío, se excluyó el año de esta manera:
moment().format("LTY")
que acaba de imprimir el mes y el día en un lugar determinado.
¿Cómo puedo hacer esto?
Lea la sección sobre formatos de fecha larga . Reemplazaría el objeto de formato de fecha larga predeterminado usando:
moment.updateLocale('en', { longDateFormat : { LT: "h:mm A", LTS: "h:mm:ss A", L: "MM/DD", // Remove year LL: "MMMM Do YYYY", LLL: "MMMM Do YYYY LT", LLLL: "dddd, MMMM Do YYYY LT" } });
Luego use:
var x = moment().format('L');
El momento analiza la cadena pasada al formato buscando tokens. Si desea agregar un token personalizado como “LTY”, también deberá agregarlo a la lista de tokens de formato locales:
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
cambiaría a (LTY añadido):
var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTY|LTS|LT|LL?L?L?|l{1,4})/g;
y actualice los formatos de fecha larga predeterminados con el nuevo token:
var defaultLongDateFormat = { LTY : 'MM/DD HH:mm', // format for new token LTS : 'h:mm:ss A', LT : 'h:mm A', L : 'MM/DD/YYYY', LL : 'MMMM D, YYYY', LLL : 'MMMM D, YYYY h:mm A', LLLL : 'dddd, MMMM D, YYYY h:mm A' };
Entonces, si querías algún otro formato:
moment.updateLocale('en', { longDateFormat : { LTY: 'MM/DD HH:mm', // new format for token here LT: "h:mm A", LTS: "h:mm:ss A", L: "MM/DD/YYYY", LL: "MMMM Do YYYY", LLL: "MMMM Do YYYY LT", LLLL: "dddd, MMMM Do YYYY LT" } });
y finalmente:
var x = moment().format('LTY');
pero tendrías que comprobar qué va a hacer con otro código. Además, tendría que aplicar los mismos cambios cada vez que actualice la fuente de moment.js, no podría usar un CDN y su código no se podría trasladar a otros sitios utilizando la biblioteca estándar de moment.js.
Así que apégate a la forma actualizada de hacer las cosas. O simplemente hacer:
var LTY = 'MM/DD HH:mm'; var d = new moment().format(LTY); console.log(d)