JavaScript - удалить миллисекунды с объекта даты - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь получить дату следующего воскресенья (и установить время на 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

Единственноемне не нужно, это 0,722 (API не примет это)

2018-11-04T09:00:00Z

Как мне удалить бит 7,722?

Ответы [ 4 ]

0 голосов
/ 28 октября 2018

Вы видите миллисекунды, которые вы также можете удалить, как показано ниже.Также вы можете использовать .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');
0 голосов
/ 28 октября 2018

вы можете использовать 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());
0 голосов
/ 28 октября 2018

Попробуйте разделить ваш toISOString() на ., используя String.prototype.split () , возьмите индекс 0th и объедините литерал Z с выводом.Таким образом, вы можете просто игнорировать индекс 1st , который содержит значение в миллисекундах.Надеюсь, это поможет:)

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");
0 голосов
/ 28 октября 2018

Одним из вариантов может быть замена регулярного выражения в строке метки времени после ее создания:

var ts = "2018-11-04T09:00:00.722Z";
console.log(ts);
ts = ts.replace(/\.\d+/, "");
console.log(ts);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...