spanish moment hora español javascript datetimepicker momentjs

javascript - español - Quitar zona horaria de un objeto moment.js



moment js español (6)

Es necesario especificar explícitamente el formato.

Prueba esto:

momentDate.format(''YYYY-MM-DDTHH:mm:ss'')

esto dará el resultado como

2015-10-01T15: 40: 00

Estoy usando datetimepicker.js y su función de date devuelve un objeto moment.js . Lo hace con el desplazamiento UTC local en él y mi fecha original tiene un desplazamiento diferente.

Mi fecha original:

2015-10-01T15:00:00.000Z

Lo que muestro en el selector de fecha y hora ( DD-MM HH:mm ):

01-10 15:00

Lo que consigo:

2015-10-01T15:40:00+01:00

Lo que quiero:

2015-10-01T15:40:00+00:00

Observe cómo eliminé el offset de +01 al final.

¿Cómo puedo hacer esto aplicándolo para cualquier UTC local? Esto es, sin tener que eliminar manualmente el 01 (ya que puede ser cualquier otro desplazamiento local dependiendo de la ubicación del usuario).

var momentDate = timePicker.data("DateTimePicker").date(); console.log(momentDate.format()); //this prints 2015-10-01T15:40:00+01:00


Esto funcionó para mí:

let date = "2017-02-01 15:20:00.00"; let pattern = "YYYY-MM-DD HH:mm:ss.SS" let d = moment(date, pattern).utc(false);

Todavía dirá que consideró la zona horaria, pero me parece que no lo hace.

LOG: ''ParseDateStr::2017-2-1 15:20:00.0000000 ParsedDate::Wed Feb 01 2017 15:20:00 GMT+0100 (Central European Standard Time)''

Normalmente, con solo un moment(date, pattern) se analizaría como 16:20:00


No es una solución limpia pero puedes hacer

momentDate.format(''YYYY-MM-DDTHH:mm:ss'') + ''00:00'';

Esto eliminaría la zona horaria y luego agregaría la parte ''00: 00 ''nuevamente. Esto es para extender la respuesta de Matt.

Que te daria

2015-10-01T15: 40: 00 + 00: 00


Parece que está intentando que el usuario elija una fecha y hora basadas en UTC. Por lo tanto, la mejor manera sería que el selector opere en modo UTC cuando crea el momento para empezar. No estoy familiarizado con este identificador de datos en particular, pero asumiendo que en algún lugar interno hace algo como esto:

var m = moment([year, month-1, day, hour, minute]);

Entonces se debe hacer esto en su lugar:

var m = moment.utc([year, month-1, day, hour, minute]);

(Las variables que se muestran aquí provendrían del control del selector).

Idealmente, el control del selector debe incluir una función para configurar el modo UTC para que pueda hacer esto internamente, cuando se lo indique.

Si no tiene esa característica, aún puede compensarse. Desafortunadamente, no puedes simplemente llamar a .utc() , ya que eso daría un tiempo diferente al que escogió el usuario. Por lo tanto, tendrá que compensar cambiando la hora UTC por el desplazamiento del momento original.

var m = // moment value from the picker var result = moment(m).utc().add(m.utcOffset(), ''m'');

A continuación, puede llamar al format o lo que desee sobre el resultado. Observe que el momento original se clona con el moment(m) , de manera que el desplazamiento no se pierde y el cambio a UTC no interfiere con el comportamiento interno del selector.

Además, tenga en cuenta que cambiar así es generalmente un hack, y si se hace mal puede llevar a errores. Aquí está bien, porque el momento ya está en modo UTC cuando se aplica el ajuste. Pero como solución general, se debe evitar el desplazamiento. La mejor opción es comenzar con el control en modo UTC.


Prueba esto:

let str = ''2015-10-01T15:40+01:00''; let moment = moment(str).utcOffset(str) console.log(moment.format(''DD/MM/YYYY HH:mm''))

<script src="https://momentjs.com/downloads/moment.js"></script>


lo mas simple posible

let str = "2018-03-20T16:29:35-03:00"; let res = str.substring(0, 19); //2018-03-20T16:29:35 let hi = moment(res).format(''LLL'') console.log(hi) //20 de Março de 2018 às 16:29