J'ai un objet de date que je veux
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
Mais ce que je veux vraiment à la fin, c’est
stringDate = '2016-03-02T21:54:00.000Z'
Bien que ce soit facilement résolu avec javascript (voir la réponse de RobG), je voulais vous montrer la solution momentjs puisque vous avez tagué vos questions comme momentjs
:
moment().seconds(0).milliseconds(0).toISOString();
Cela vous donne l'heure actuelle, sans secondes ni millisecondes.
Exemple de travail: http://jsbin.com/bemalapuyi/edit?html,js,output
À partir de la documentation: http://momentjs.com/docs/#/get-set/
Il n’est pas nécessaire de disposer d’une bibliothèque, définissez simplement les secondes et les millisecondes sur zéro et utilisez la méthode intégrée toISOString :
var d = new Date();
d.setSeconds(0,0);
document.write(d.toISOString());
Remarque: toISOString n'est pas pris en charge par IE 8 et inférieur, il existe un pollyfil sur MDN .
Un peu tard ici mais maintenant vous pouvez:
var date = new Date();
cet obj a:
date.setMilliseconds(0);
et
date.setSeconds(0);
puis appelez toISOString()
comme vous le faites et tout ira bien.
Aucun moment ou d'autres dép.
Solutions javascript pures permettant d’éliminer les secondes et les millisecondes (c’est supprimer, et pas seulement 0). JSPerf indique que la deuxième fonction est plus rapide.
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()))
Vous pouvez utiliser la méthode startOf () dans moment.js pour obtenir ce que vous voulez.
Voici un exemple:
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>
let date = new Date();
date = new Date(date.getFullYear(), date.getMonth(), date.getDate());
J'espère que ça marche !!