Пользовательская функция форматирования:
Для фиксированных форматов, простая функция делает работу.В следующем примере генерируется международный формат YYYY-MM-DD:
function dateToYMD(date) {
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5
Формат OP может быть сгенерирован как:
function dateToYMD(date) {
var strArray=['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var d = date.getDate();
var m = strArray[date.getMonth()];
var y = date.getFullYear();
return '' + (d <= 9 ? '0' + d : d) + '-' + m + '-' + y;
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5
Примечание. Однако обычно не стоит расширять стандартные библиотеки JavaScript (например, путем добавления этой функции в прототип Date).
Более продвинутая функция может генерировать настраиваемый вывод на основе параметра форматирования.
Если написать функцию форматирования слишком долго, существует множество библиотек, вокруг которых это делается.Некоторые другие ответы уже перечисляют их.Но у растущих зависимостей есть и аналог.
Стандартные функции форматирования ECMAScript:
Поскольку в более поздних версиях ECMAScript класс Date
имеет некоторые специальные функции форматирования:
toDateString : зависит от реализации, показывать только дату.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.todatestring
new Date().toDateString(); // e.g. "Fri Nov 11 2016"
toISOString : Показать дату и время ISO 8601.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.toisostring
new Date().toISOString(); // e.g. "2016-11-21T08:00:00.000Z"
toJSON : Stringifier для JSON.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.tojson
new Date().toJSON(); // e.g. "2016-11-21T08:00:00.000Z"
toLocaleDateString : зависит от реализации, дата в формате локали.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.tolocaledatestring
new Date().toLocaleDateString(); // e.g. "21/11/2016"
toLocaleString : зависит от реализации, дата и время в формате локали.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.tolocalestring
new Date().toLocaleString(); // e.g. "21/11/2016, 08:00:00 AM"
toLocaleTimeString : зависит от реализации, время в формате локали.
http://www.ecma -international.org / ecma-262 / 7.0 / index.html # sec-date.prototype.tolocaletimestring
new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"
toString : общая строка toString для даты.
http://www.ecma -international.org/ecma-262/7.0/index.html#sec-date.prototype.tostring
new Date().toString(); // e.g. "Fri Nov 21 2016 08:00:00 GMT+0100 (W. Europe Standard Time)"
Примечание: из этого форматирования можно создать пользовательский вывод>
new Date().toISOString().slice(0,10); //return YYYY-MM-DD
Примеры фрагментов:
console.log("1) "+ new Date().toDateString());
console.log("2) "+ new Date().toISOString());
console.log("3) "+ new Date().toJSON());
console.log("4) "+ new Date().toLocaleDateString());
console.log("5) "+ new Date().toLocaleString());
console.log("6) "+ new Date().toLocaleTimeString());
console.log("7) "+ new Date().toString());
console.log("8) "+ new Date().toISOString().slice(0,10));