Estoy moviendo parte del código php para frontend javascript en mi aplicación web. Necesito formatear la fecha y hora actual como date(‘ymdHis’) en javascript.

Intenté usar javascript toLocaleDateString como tal:

new Date().toLocaleDateString("ko-KR", { year: "2-digit", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"}).replace(/\D/g,'');

Esto resuelve mi problema actual, pero utilicé la configuración regional "ko-KR" para hacer el pedido año-mes-día. Si la implementación cambia un poco, me resultará difícil.

Quiero saber, ¿hay alguna biblioteca de JavaScript para administrar correctamente esta tarea? Por ejemplo, si la próxima vez es date(‘mydHis’), no tengo que encontrar una configuración regional que siga este orden.
Miré a través de moment.js, pero parece que no es realmente para la salida numérica como tal (no lo examiné en profundidad, lo siento si esto está mal).

Cualquier ayuda sería muy apreciada.

Encontré esto mientras buscaba más, podría ser útil: https://www.npmjs.com/package/dateformat de http://blog.stevenlevithan.com/archives/date-time-format

(Lo siento, soy bastante nuevo en StackOverflow, tendré en cuenta que usaré la edición la próxima vez).

2
Dan Lee 10 may. 2019 a las 07:13

3 respuestas

La mejor respuesta

Probablemente no necesite una biblioteca para esto.

Con este código puede mezclar y combinar sus elementos de fecha / hora como desee:

let date = new Date(2019,4,10,15,30,20) //10 May 2019, 3:30:20 PM
let dateStr = date.toLocaleDateString("en-GB", {day:"2-digit", month:"2-digit", year:"2-digit"}) // 10/05/19

let arr = dateStr.split("/")// [ '10', '05', '19' ]
let d = arr[0]; //e.g. 10 
let m = arr[1]; //e.g. 5 
let y = arr[2]; //e.g. 19

let timeStr = date.toLocaleTimeString("en-GB", {hour12:false, hour:"2-digit",minute:"2-digit", second:"2-digit"}) //
let arr2 = timeStr.split(":") // 15:30:20
let H = arr2[0]; //e.g. 15
let i = arr2[1]; //e.g. 30
let s = arr2[2]; //e.g. 20

let ymdHms = y + m + d + H + i + s;

console.log(ymdHms); //190510153020
1
chatnoir 10 may. 2019 a las 05:47

Puedes usar moment.js para formatear tu fecha actual.

Var date = moment ({your date}). toDate (). format ('AAAA-MM-DD');

También puede usar MOMENT

Lo cual es muy fácil de implementar.

0
Udal Pal 10 may. 2019 a las 05:24

Olvidas agregar hour12: false en tus opciones

    const opt = {
      year: "2-digit", month: "2-digit", day: "2-digit",
      hour12: false,
      hour: "2-digit", minute: "2-digit", second: "2-digit"
    }

    new Date().toLocaleDateString("ko-KR", opt).replace(/\D/g, '');

Pero de una manera simple sin biblioteca:

function form_ymdHis(xDate) {
  return xDate.getFullYear().toString(10).substring(2)
      + (xDate.getMonth()+1).toString(10).padStart(2,'0')
      + xDate.getDate().toString(10).padStart(2,'0')
      + xDate.getHours().toString(10).padStart(2,'0')
      + xDate.getMinutes().toString(10).padStart(2,'0')  
      + xDate.getSeconds().toString(10).padStart(2,'0')
}


console.log ( form_ymdHis(new Date() ))
0
Mister Jojo 10 may. 2019 a las 05:21