Как получить дату в формате Y-m-d

Простое решение на JavaScript

Есть задача получить дату в формате yyyy-mm-dd

Чтобы её решить, обычно, получают объект new Date и дальше с помощью конкатенации склеивают нужные значения в строку, используя соответствующие методы типа getFullYear и так далее… И если полученное число имеет один знак (меньше 10), то нужно дописать еще логику добивания нулями слева.

Но если нужно получить дату именно в таком формате (yyyy-mm-dd) на VanilaJS, то все можно сделать проще:

(new Date).toLocaleDateString().split('.').reverse().join('-')

Что мы делаем? Получаем дату в формате d.m.y, разбиваем на массив, переворачиваем и склеиваем с новым разделителем.

Но есть способ еще короче:

> new Date().toJSON().slice(0,10)
> "2016-10-15"

И так, что же мы сделали. У объекта класса Date есть метод toJSON, который выдаст нам строку

“2016–10–15T08:54:55.997Z”

Ну а дальше мы просто читаем первые 10 символов и получаем нашу дату в нужном формате.