Estoy tratando de usar JS para convertir un date object
en una cadena en YYYYMMDD
formato. ¿Hay una manera más fácil que la concatenación Date.getYear()
, Date.getMonth()
y Date.getDay()
?
javascript
date
Vengador IVR
fuente
fuente
Respuestas:
Pieza de código alterada que uso a menudo:
fuente
[1]
con.length===2
, porque un indexador en una cadena no es totalmente compatible. Vea esta respuesta por las razones.[this.getFullYear(), mm<10 ? '0'+ mm: mm, dd<10 ? '0'+ dd : dd].join('.')
var mm = (this.getMonth() + 101).toString().substring(1, 3)
No me gustó agregar al prototipo. Una alternativa sería:
fuente
rightNow
variable, puede envolverlanew Date
y recuperarla en una sola línea:(new Date()).toISOString().slice(0,10).replace(/-/g,"")
YYYYMMDDHHmmSSsss
, así que hice esto:var ds = (new Date()).toISOString().replace(/[^0-9]/g, "");
. Bastante simple, pero debe estar encapsulado.rightNow.setMinutes(rightNow.getMinutes() - rightNow.getTimezoneOffset()); rightNow.toISOString().slice(0,10)
Puedes usar la
toISOString
función:Le dará un formato "aaaa-mm-dd".
fuente
Moment.js podría ser tu amigo
fuente
var formattedDate = moment().format('YYYYMMDD');
Si no necesita una solución JS pura, puede usar jQuery UI para hacer el trabajo de esta manera:
Por lo general, no me gusta importar demasiadas bibliotecas. Pero jQuery UI es tan útil que probablemente lo usará en otro lugar de su proyecto.
Visite http://api.jqueryui.com/datepicker/ para obtener más ejemplos.
fuente
Esta es una sola línea de código que puede usar para crear una
YYYY-MM-DD
cadena de la fecha de hoy.fuente
toISOString()
dará 2015-12-31T22: 00: 00 GMT +0 (dos horas antes).fuente
new Date('Sun Mar 31 2019 00:00:00.000').toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');
Además de la respuesta de oo, me gustaría recomendar la separación de las operaciones lógicas del retorno y colocarlas como terciarias en las variables.
Además, úselo
concat()
para garantizar una concatenación segura de variablesfuente
("00" + (this.getDate())).slice(-2)
para obtener los números basados en dos dígitos. No hay una declaración "if" o "?:", Y menos llamadas a la función .getX (). Si no es un poco más rápido, al menos es más legible.No me gusta modificar objetos nativos, y creo que la multiplicación es más clara que la cadena que rellena la solución aceptada.
Violín: http://jsfiddle.net/gbdarren/Ew7Y4/
fuente
.replace('-', '')
para que responda a la pregunta del OP), mientras que usted fue fiel a la pregunta original del OP y no requeriría ese paso adicional. ¡Excelente!Solución simple JS (ES5) sin posibles problemas de salto de fecha causados por la impresión de Date.toISOString () en UTC:
Esto en respuesta al comentario de @ weberste sobre la respuesta de @Pierre Guilbert.
fuente
toISOString
devolver múltiples guiones sucesivos?fuente
fuente
new Date()
crea un nuevo objeto de fecha que es solo un contenedor alrededor de nr. de ms desde 1970/01/01 00: 00: 00.000 UTC. Luego setoISOString
imprime en la zona horaria local.Otra forma es usarlo
toLocaleDateString
con una configuración regional que tenga un estándar de formato de fecha big endian , como Suecia, Lituania, Hungría, Corea del Sur, ...:Para eliminar los delimitadores (
-
) es solo cuestión de reemplazar los no dígitos:Esto no tiene el error potencial que puede obtener con los formatos de fecha UTC: la fecha UTC puede ser un día libre en comparación con la fecha en la zona horaria local.
fuente
Simplemente puede usar este código de una línea para obtener la fecha en el año
fuente
Versión un poco simplificada para la respuesta más popular en este hilo https://stackoverflow.com/a/3067896/5437379 :
fuente
dateformat es un paquete muy usado.
Cómo utilizar:
Descargue e instale
dateformat
desde NPM. Requerirlo en su módulo:const dateFormat = require('dateformat');
y luego simplemente formatea tus cosas:
const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');
fuente
Este tipo aquí => http://blog.stevenlevithan.com/archives/date-time-format escribió una
format()
función para elDate
objeto de Javascript , por lo que se puede usar con formatos literales familiares.Si necesita un formato de fecha con todas las funciones en el Javascript de su aplicación, úselo. De lo contrario, si lo que desea hacer es una única vez, entonces concatenar getYear (), getMonth (), getDay () probablemente sea lo más fácil.
fuente
Trabajando a partir de la respuesta de @ oo, esto le devolverá la cadena de la fecha de acuerdo con una cadena de formato. Puede agregar fácilmente una expresión regular anual de 2 dígitos para el año y milisegundos y tal si los necesita.
Sin embargo, no sé cuán eficiente es eso, especialmente en lo que respecta al rendimiento porque usa mucha expresión regular. Probablemente podría usar algo de trabajo que no domino js puro.
fuente
Este código es fijo para la respuesta de Pierre Guilbert:
(funciona incluso después de 10000 años)
fuente
Parece que mootools proporciona
Date().format()
: https://mootools.net/more/docs/1.6.0/Types/DateSin embargo, no estoy seguro de si vale la pena incluirlo solo para esta tarea en particular.
fuente
Usualmente uso el siguiente código cuando necesito hacer esto.
Para explicar, .slice (-2) nos da los dos últimos caracteres de la cadena.
Entonces, pase lo que pase, podemos agregar "0" al día o mes, y solo pedir los dos últimos, ya que esos son siempre los dos que queremos.
Entonces, si MyDate.getMonth () devuelve 9, será:
agregando .slice (-2) en eso nos da los dos últimos caracteres que es:
Pero si date.getMonth () devuelve 10, será:
entonces agregar .slice (-2) nos da los dos últimos caracteres, o:
fuente
Si usa AngularJs (hasta 1.5) puede usar el filtro de fecha :
fuente
Respondiendo a otro por simplicidad y legibilidad.
Además, no se recomienda editar miembros de clase predefinidos existentes con nuevos métodos:
fuente
¿Qué tal Day.js ?
Solo cuesta 2KB, y tú también puedes
dayjs().format('YYYY-MM-DD')
.https://github.com/iamkun/dayjs
fuente
Si no le importa incluir una biblioteca adicional (pero pequeña), Sugar.js ofrece una gran funcionalidad para trabajar con fechas en JavaScript. Para formatear una fecha, use la función de formato :
fuente
fuente
fecha-shortcode al rescate!
fuente
Utilice padStart :
fuente
Aquí hay un enfoque más genérico que permite componentes de fecha y hora y se puede clasificar de forma idéntica como número o cadena.
Según el orden numérico del formato de fecha ISO, conviértalo a una zona horaria local y elimine los no dígitos. es decir:
Uso
fuente
Javascript nativo:
fuente