Я пытаюсь получить дату следующего воскресенья (и установить время до 9 утра:
var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
console.log(sun.toISOString());
Это то, что я получаю:
2018-11-04T09:00:00.722Z
Единственное, что мне не нужно, это:.722 (API не согласится с этим)
2018-11-04T09:00:00Z
Как удалить бит.722?
Попробуйте разделить ваш toISOString()
с помощью .
используя String.prototype.split(), захватите 0-й индекс и объедините литерал Z
с выходом. Таким образом, вы можете просто игнорировать первый индекс, который содержит значение миллисекунд. Надеюсь это поможет :)
var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
console.log(sun.toISOString().split('.')[0]+"Z");
вы можете использовать setMilliseconds в объекте Date, чтобы установить желаемую сумму милисекунд.
var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9);
sun.setMinutes(0);
sun.setSeconds(0);
sun.setMilliseconds(0);
console.log(sun.toISOString());
Один из вариантов может заключаться в том, чтобы выполнить замену регулярных выражений в строке timestamp после ее создания:
var ts = "2018-11-04T09:00:00.722Z";
console.log(ts);
ts = ts.replace(/\.\d+/, "");
console.log(ts);
Это миллисекунды, которые вы видите, которые вы также можете удалить, как показано ниже. Также вы можете использовать.setHours() только для удаления минут и секунд.
var sun = new Date();
sun.setDate(sun.getDate() + (7 - sun.getDay()));
sun.setHours(9,0,0,0)
console.log(sun.toISOString().slice(0,-5) + 'Z');
sun.setMilliseconds(0)