JavaScript - удалить миллисекунды с объекта даты

1

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

  • 1
    sun.setMilliseconds(0)
  • 0
    @ Понятно, что комментарий должен быть ответом (ответ, IMO)
Показать ещё 1 комментарий
Теги:
date

4 ответа

3
Лучший ответ

Попробуйте разделить ваш 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");
  • 1
    Благодарю. Это сработало
  • 0
    @ Пустошь, пожалуйста. Рад, что тебе это как-то помогает. Удачи
Показать ещё 4 комментария
2

вы можете использовать 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
    Это все еще напечатало бы это все же.
2

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

var ts = "2018-11-04T09:00:00.722Z";
console.log(ts);
ts = ts.replace(/\.\d+/, "");
console.log(ts);
0

Это миллисекунды, которые вы видите, которые вы также можете удалить, как показано ниже. Также вы можете использовать.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');
  • 1
    Yups !! Обновлен console.log () сейчас. Благодарю.
  • 0
    мс иногда может быть один символ после точки, я не буду рекомендовать ломтик
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню