formato fecha javascript date momentjs isodate

javascript - formato - Eliminar segundos/milisegundos de la fecha se convierte en cadena ISO



date()/ json to javascript date (5)

Tengo un objeto de fecha que quiero

  1. eliminar los milisegundos / o establecer en 0
  2. eliminar los segundos / o poner a 0
  3. Convertir a cadena ISO

Por ejemplo:

var date = new Date(); //Wed Mar 02 2016 16:54:13 GMT-0500 (EST) var stringDate = moment(date).toISOString(); //2016-03-02T21:54:13.537Z

Pero lo que realmente quiero al final es

stringDate = ''2016-03-02T21:54:00.000Z''


No hay necesidad de una biblioteca, simplemente establezca los segundos y milisegundos en cero y use el método integrado toISOString :

var d = new Date(); d.setSeconds(0,0); document.write(d.toISOString());

Nota: toISOString no es compatible con IE 8 e inferior, hay un pollyfil en MDN .


Puede utilizar el método startOf () dentro de moment.js para lograr lo que desea.

Aquí hay un ejemplo:

var date = new Date(); var stringDateFull = moment(date).toISOString(); var stringDateMinuteStart = moment(date).startOf("minute").toISOString(); $("#fullDate").text(stringDateFull); $("#startOfMinute").text(stringDateMinuteStart);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.js"></script> <p>Full date: <span id="fullDate"></span></p> <p>Date with cleared out seconds: <span id="startOfMinute"></span></p>


Si bien esto es fácil de solucionar con javascript simple (vea la respuesta de RobG), quería mostrarle la solución de momentjs ya que marcó sus preguntas como momentjs :

moment().seconds(0).milliseconds(0).toISOString();

Esto le da la fecha y hora actual, sin segundos o milisegundos.

Ejemplo de trabajo: http://jsbin.com/bemalapuyi/edit?html,js,output

De los documentos: http://momentjs.com/docs/#/get-set/


Soluciones javascript puras para recortar segundos y milisegundos (es decir, eliminar, no solo establecer a 0). JSPerf dice que la segunda función es más rápida.

function getISOStringWithoutSecsAndMillisecs1(date) { const dateAndTime = date.toISOString().split(''T'') const time = dateAndTime[1].split('':'') return dateAndTime[0]+''T''+time[0]+'':''+time[1] } console.log(getISOStringWithoutSecsAndMillisecs1(new Date()))

function getISOStringWithoutSecsAndMillisecs2(date) { const dStr = date.toISOString() return dStr.substring(0, dStr.indexOf('':'', dStr.indexOf('':'')+1)) } console.log(getISOStringWithoutSecsAndMillisecs2(new Date()))


Un poco tarde aquí, pero ahora puedes:

var date = new Date();

este obj tiene

date.setMilliseconds(0);

y

date.setSeconds(0);

luego llama a toISOString() como lo haces y estarás bien.

No hay momento u otros deps.