Moment.js Incluir texto en medio del formato de fecha

2 minutos de lectura

avatar de usuario
AzulCaret

Tengo un formato de “27 de enero de 2015 a las 8:17 AM” que necesito mostrar usando moment.js. estoy usando el formato

moment.format('MMM. D, YYYY at h:mm A z');

Todo funciona muy bien excepto por la palabra “en”. ¿Cómo puedo hacer que esa palabra se muestre como una palabra en lugar de que la “a” en “a las” se traduzca a “am/pm”? En este momento, usando ese formato de fecha, termina luciendo así: 27 de enero de 2015 a las 8:17 a.m. Observe el “amt” en lugar de “at”.

¿Hay alguna forma sencilla de hacer que no procese la “a” como parte del formato? Ya intenté dividir la salida e ingresar manualmente “arroba” después del tercer espacio, pero me gustaría un código más limpio si es posible.

avatar de usuario
DanielST

escapar con llaves cuadradas

moment().format('MMM. D, YYYY [at] h:mm A z');
// produces:    "Jan. 30, 2015 at 2:46 PM "

  • ¡Eso lo hizo! Sabía que tenía que haber una manera 🙂 Gracias

    – Blue Caret

    31 de enero de 2015 a las 0:04

  • Solo una nota, asegúrese de tener espacio entre el texto personalizado y los tokens de formato

    – Samih A.

    12 de diciembre de 2017 a las 12:43

  • ¿Qué pasa si este texto es una variable definida como const. ¿Podemos incluirlo?

    –Dhiraj Gandhi

    14 de enero de 2019 a las 10:29

  • ¿Cómo puede agregar i18n a la mezcla y traducir [at]? Así que por ejemplo moment().locale('en').format('MMM. D, YYYY [at] h:mm A z'); devoluciones "Jul. 27, 2020 at 12:54 PM " mientras moment().locale('it').format('MMM. D, YYYY [at] h:mm A z'); devoluciones "lug. 27, 2020 alle 12:54 PM "? ¿Cómo podemos lograr esto? ¡Gracias!

    – tonix

    27 de julio de 2020 a las 10:55


  • Puede que sea un poco tarde, pero lo que hago para trabajar con un formato personalizado basado en la configuración regional es que pongo el formato de cadena de momento directamente en el json de configuración regional de mi i18n, por lo que cargará un formato de cadena diferente según el idioma. Supongo que de otra manera lo haría. ser simplemente crear una cadena a partir de piezas si su formato general es el mismo, como ‘MMM. D, AAAA [at] h:mm A z’ podría convertirse en ‘MMM. D, AAAA [‘ + i18n(‘at’) + ‘] h:mm A z’ o para el usuario de comillas mágicas `MMM. D, AAAA [${i18n(‘at’)}] h:mm A z`

    – Kpo

    17 de junio de 2021 a las 15:23


¿Ha sido útil esta solución?