Как отформатировать дату JavaScript

Как я могу отформатировать объект даты JavaScript для печати как 10-Aug-2010?

+1865
23 авг. '10 в 23:28
источник поделиться
50 ответов
  • 1
  • 2

Внимание: Ниже приведены более качественные ответы. Этот ответ был написан в 2010 году, и с тех пор появились новые и лучшие решения. ОП должен принять другой ответ.

function formatDate(date) {
  var monthNames = [
    "January", "February", "March",
    "April", "May", "June", "July",
    "August", "September", "October",
    "November", "December"
  ];

  var day = date.getDate();
  var monthIndex = date.getMonth();
  var year = date.getFullYear();

  return day + ' ' + monthNames[monthIndex] + ' ' + year;
}

console.log(formatDate(new Date()));  // show current date-time in console

Вы можете редактировать массив monthNames чтобы использовать Jan, Feb, Mar и т.д.

+1105
23 авг. '10 в 23:35
источник

Используйте toLocaleDateString()

Метод toLocaleDateString() возвращает строку с чувствительным к языку представлением части даты даты. Аргументы locales и options позволяют приложениям указывать язык, для которого должны использоваться соглашения о форматировании, и позволяют настраивать поведение функции.

Значения, которые вы можете передать в опциях для разных ключей:

  1. день:
    Представление дня.
    Возможные значения: "числовой", "2-значный".
  2. будний день:
    Представление дня недели.
    Возможные значения: "узкий", "короткий", "длинный".
  3. год:
    Представление года.
    Возможные значения: "числовой", "2-значный".
  4. месяц:
    Представление месяца.
    Возможные значения: "числовой", "2-значный", "узкий", "короткий", "длинный".
  5. час:
    Представление часа.
    Возможные значения: "числовой", "2-значный".
  6. минута: представление минуты.
    Возможные значения: "числовой", "2-значный".
  7. второй:
    Представление второе.
    Возможные значения: "числовые", 2-значные ".

Все эти ключи являются необязательными. Вы можете изменить количество значений параметров в соответствии с вашими требованиями, и это также будет отражать наличие каждой даты и времени.

Примечание. Если вы хотите настроить только параметры содержимого, но при этом использовать текущую локаль, передача null для первого параметра вызовет ошибку. Вместо этого используйте undefined.

Для разных языков:

  1. "en-US": для английского
  2. "привет-в": для хинди
  3. "JA-JP": для японского

Вы можете использовать больше вариантов языка.

Например

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today  = new Date();

console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016

Вы также можете использовать метод toLocaleString() для той же цели. Разница лишь в том, что эта функция обеспечивает время, когда вы не передаете никаких опций.

// Example
9/17/2016, 1:21:34 PM

Рекомендации:

+1675
01 дек. '15 в 8:11
источник

Используйте date.format library:

var dateFormat = require('dateformat');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");

возвращает:

Saturday, June 9th, 2007, 5:46:21 PM 

dateformat на npm

http://jsfiddle.net/phZr7/1/

+583
23 авг. '10 в 23:35
источник

Если вам нужно быстро форматировать дату, используя обычный JavaScript, используйте getDate, getMonth + 1, getFullYear, getHours и getMinutes:

var d = new Date();

var datestring = d.getDate()  + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();

// 16-5-2015 9:50

Или, если вам нужно, чтобы он дополнялся нулями:

var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
    d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);

// 16-05-2015 09:50
+456
16 мая '15 в 7:02
источник

Ну, я хотел преобразовать сегодняшнюю дату в дружественную для MySQL строку даты, такую как 2012-06-23, и использовать эту строку в качестве параметра в одном из моих запросов. Я нашел простое решение:

var today = new Date().toISOString().slice(0, 10);

Имейте в виду, что приведенное выше решение не учитывает смещение вашего часового пояса.

Вы можете рассмотреть возможность использования этой функции вместо:

function toJSONLocal (date) {
    var local = new Date(date);
    local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
    return local.toJSON().slice(0, 10);
}

Это даст вам правильную дату в случае, если вы выполняете этот код в начале/конце дня.

+382
23 июн. '12 в 18:49
источник

Пользовательская функция форматирования:

Для фиксированных форматов простую функцию выполняет задание. В следующем примере создается международный формат ГГГГ-ММ-ДД:

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 (например, добавив эту функцию в прототип даты).

Более продвинутая функция может генерировать настраиваемый вывод на основе параметра формата.

Если написать функцию форматирования слишком долго, существует множество библиотек, вокруг которых это делается. Некоторые другие ответы уже перечисляют их. Но растущие зависимости также имеют противоположную часть.

Стандартные функции форматирования 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));
+188
12 апр. '17 в 9:09
источник

Если вы уже используете jQuery UI в своем проекте, вы можете сделать это следующим образом:

var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));

// formatted will be 'Jul 8, 2014'

Некоторые параметры формата даты датпикера для воспроизведения доступны здесь.

+171
09 июл. '14 в 13:52
источник

Я думаю, вы можете просто использовать нестандартный метод Date toLocaleFormat(formatString)

formatString: Строка формата в том же формате, что и функция strftime() в C.

var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011

Литература:

+128
30 дек. '11 в 5:33
источник

Обычный JavaScript - лучший выбор для небольших onetimers.

С другой стороны, если вам нужно больше материала даты, MomentJS - отличное решение.

Например:

moment().format('YYYY-MM-DD HH:m:s');     // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow();        // 11 hours ago
moment().endOf('day').fromNow();          // in 13 hours
+99
24 дек. '14 в 10:15
источник

В современных браузерах (*) вы можете просто сделать это:

var today = new Date().toLocaleDateString('en-GB', {
    day : 'numeric',
    month : 'short',
    year : 'numeric'
}).split(' ').join('-');

Вывод, если выполняется сегодня (24 января 2016 года):

'24-Jan-2016'

(*) Согласно MDN, "современные браузеры" означают Chrome 24+, Firefox 29+, Internet Explorer 11, Edge 12+, Opera 15+ и Safari ночная сборка. p >

+93
24 янв. '16 в 21:09
источник

Вы должны посмотреть date.js. Он добавляет много удобных помощников для работы с датами, например, в вашем случае:

var date = Date.parse('2010-08-10');
console.log(date.toString('dd-MMM-yyyy'));

Начало работы: http://www.datejs.com/2007/11/27/getting-started-with-datejs/

+51
30 дек. '11 в 8:10
источник

@Sébastien - альтернативная поддержка всех браузеров

new Date(parseInt(496407600)*1000).toLocaleDateString('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\./g, '/');

Документация:  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

+35
02 окт. '14 в 16:40
источник

Я могу получить ваш запрошенный формат в одной строке без использования библиотек и методов Date, просто regex:

var d = (new Date()).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3');
// date will be formatted as "14-Oct-2015" (pass any date object in place of 'new Date()')

Обновление. Как указывал @RobG, вывод Date.prototype.toString() зависит от реализации. Поэтому используйте это с осторожностью и при необходимости измените, если вы используете это решение. В моем тестировании это надежно работает в Северной Америке, где основные браузеры (Chrome, Safari, Firefox и IE) возвращают одинаковый формат строк.

+34
14 окт. '15 в 17:25
источник

Использование шаблона строки ECMAScript Edition 6 (ES6/ES2015):

let d = new Date();
let formatted = '${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}';

Если вам нужно изменить разделители:

const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);
+28
28 авг. '17 в 12:49
источник

Комплексное решение: Luxon

Если вы хотите использовать одно решение для всех, я настоятельно рекомендую использовать Luxon (модернизированную версию Moment.js), который также выполняет форматирование во многих локалях/языках и множестве других функций.

Luxon размещен на веб-сайте Moment.js и разработан разработчиком Moment.js, поскольку Moment.js имеет ограничения, которые разработчик хотел бы устранить, но не смог.

Установить:

npm install luxon или yarn add luxon (см. ссылку на другие способы установки)

Пример:

luxon.DateTime.fromISO('2010-08-10').toFormat('yyyy-LLL-dd');

Урожайность:

10-августа-2010

Ручное решение

Используя форматирование, аналогичное Moment.js, Class DateTimeFormatter (Java) и Class SimpleDateFormat (Java), я реализовал комплексное решение formatDate(date, patternStr) котором код легко читать и изменять. Вы можете отобразить дату, время, AM/PM и т.д. См. Код для большего количества примеров.

Пример:

formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss:S')

(formatDate реализовано в фрагменте кода ниже)

Урожайность:

Пятница, 12 октября 2018 года 18: 11: 23: 445

Попробуйте ввести код, нажав "Выполнить фрагмент кода".

Шаблоны даты и времени

yy= год из двух цифр; yyyy= полный год

M= разрядный месяц; MM= двузначный месяц; MMM= короткое название месяца; MMMM= полное название месяца

EEEE= полное название дня недели; EEE= короткое название дня недели

d= цифра день; dd= двухзначный день

h= часы утра/вечера; hh= двузначные часы утра/вечера; H= часы; HH= двузначные часы

m= минуты; mm= двузначные минуты; aaa= AM/PM

s= секунды; ss= 2-значные секунды

S= миллисекунды

var monthNames = [
  "January", "February", "March", "April", "May", "June", "July",
  "August", "September", "October", "November", "December"
];
var dayOfWeekNames = [
  "Sunday", "Monday", "Tuesday",
  "Wednesday", "Thursday", "Friday", "Saturday"
];
function formatDate(date, patternStr){
    if (!patternStr) {
        patternStr = 'M/d/yyyy';
    }
    var day = date.getDate(),
        month = date.getMonth(),
        year = date.getFullYear(),
        hour = date.getHours(),
        minute = date.getMinutes(),
        second = date.getSeconds(),
        miliseconds = date.getMilliseconds(),
        h = hour % 12,
        hh = twoDigitPad(h),
        HH = twoDigitPad(hour),
        mm = twoDigitPad(minute),
        ss = twoDigitPad(second),
        aaa = hour < 12 ? 'AM' : 'PM',
        EEEE = dayOfWeekNames[date.getDay()],
        EEE = EEEE.substr(0, 3),
        dd = twoDigitPad(day),
        M = month + 1,
        MM = twoDigitPad(M),
        MMMM = monthNames[month],
        MMM = MMMM.substr(0, 3),
        yyyy = year + "",
        yy = yyyy.substr(2, 2)
    ;
    return patternStr
      .replace('hh', hh).replace('h', h)
      .replace('HH', HH).replace('H', hour)
      .replace('mm', mm).replace('m', minute)
      .replace('ss', ss).replace('s', second)
      .replace('S', miliseconds)
      .replace('dd', dd).replace('d', day)
      .replace('MMMM', MMMM).replace('MMM', MMM).replace('MM', MM).replace('M', M)
      .replace('EEEE', EEEE).replace('EEE', EEE)
      .replace('yyyy', yyyy)
      .replace('yy', yy)
      .replace('aaa', aaa)
    ;
}
function twoDigitPad(num) {
    return num < 10 ? "0" + num : num;
}
console.log(formatDate(new Date()));
console.log(formatDate(new Date(), 'dd-MMM-yyyy')); //OP request
console.log(formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss.S aaa'));
console.log(formatDate(new Date(), 'EEE, MMM d, yyyy HH:mm'));
console.log(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss.S'));
console.log(formatDate(new Date(), 'M/dd/yyyy h:mmaaa'));

Спасибо, Джерри, за то, что воспитали Люксон

+23
13 окт. '18 в 4:19
источник

Вот код, который я только что написал для обработки форматирования даты для проекта, над которым я работаю. Он имитирует функциональность форматирования даты PHP в соответствии с моими потребностями. Не стесняйтесь использовать его, просто расширяя уже существующий объект Date(). Это может быть не самое элегантное решение, но оно работает для моих нужд.

var d = new Date(); 
d_string = d.format("m/d/Y h:i:s");

/**************************************
 * Date class extension
 * 
 */
    // Provide month names
    Date.prototype.getMonthName = function(){
        var month_names = [
                            'January',
                            'February',
                            'March',
                            'April',
                            'May',
                            'June',
                            'July',
                            'August',
                            'September',
                            'October',
                            'November',
                            'December'
                        ];

        return month_names[this.getMonth()];
    }

    // Provide month abbreviation
    Date.prototype.getMonthAbbr = function(){
        var month_abbrs = [
                            'Jan',
                            'Feb',
                            'Mar',
                            'Apr',
                            'May',
                            'Jun',
                            'Jul',
                            'Aug',
                            'Sep',
                            'Oct',
                            'Nov',
                            'Dec'
                        ];

        return month_abbrs[this.getMonth()];
    }

    // Provide full day of week name
    Date.prototype.getDayFull = function(){
        var days_full = [
                            'Sunday',
                            'Monday',
                            'Tuesday',
                            'Wednesday',
                            'Thursday',
                            'Friday',
                            'Saturday'
                        ];
        return days_full[this.getDay()];
    };

    // Provide full day of week name
    Date.prototype.getDayAbbr = function(){
        var days_abbr = [
                            'Sun',
                            'Mon',
                            'Tue',
                            'Wed',
                            'Thur',
                            'Fri',
                            'Sat'
                        ];
        return days_abbr[this.getDay()];
    };

    // Provide the day of year 1-365
    Date.prototype.getDayOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((this - onejan) / 86400000);
    };

    // Provide the day suffix (st,nd,rd,th)
    Date.prototype.getDaySuffix = function() {
        var d = this.getDate();
        var sfx = ["th","st","nd","rd"];
        var val = d%100;

        return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
    };

    // Provide Week of Year
    Date.prototype.getWeekOfYear = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
    } 

    // Provide if it is a leap year or not
    Date.prototype.isLeapYear = function(){
        var yr = this.getFullYear();

        if ((parseInt(yr)%4) == 0){
            if (parseInt(yr)%100 == 0){
                if (parseInt(yr)%400 != 0){
                    return false;
                }
                if (parseInt(yr)%400 == 0){
                    return true;
                }
            }
            if (parseInt(yr)%100 != 0){
                return true;
            }
        }
        if ((parseInt(yr)%4) != 0){
            return false;
        } 
    };

    // Provide Number of Days in a given month
    Date.prototype.getMonthDayCount = function() {
        var month_day_counts = [
                                    31,
                                    this.isLeapYear() ? 29 : 28,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31,
                                    31,
                                    30,
                                    31,
                                    30,
                                    31
                                ];

        return month_day_counts[this.getMonth()];
    } 

    // format provided date into this.format format
    Date.prototype.format = function(dateFormat){
        // break apart format string into array of characters
        dateFormat = dateFormat.split("");

        var date = this.getDate(),
            month = this.getMonth(),
            hours = this.getHours(),
            minutes = this.getMinutes(),
            seconds = this.getSeconds();
        // get all date properties ( based on PHP date object functionality )
        var date_props = {
            d: date < 10 ? '0'+date : date,
            D: this.getDayAbbr(),
            j: this.getDate(),
            l: this.getDayFull(),
            S: this.getDaySuffix(),
            w: this.getDay(),
            z: this.getDayOfYear(),
            W: this.getWeekOfYear(),
            F: this.getMonthName(),
            m: month < 10 ? '0'+(month+1) : month+1,
            M: this.getMonthAbbr(),
            n: month+1,
            t: this.getMonthDayCount(),
            L: this.isLeapYear() ? '1' : '0',
            Y: this.getFullYear(),
            y: this.getFullYear()+''.substring(2,4),
            a: hours > 12 ? 'pm' : 'am',
            A: hours > 12 ? 'PM' : 'AM',
            g: hours % 12 > 0 ? hours % 12 : 12,
            G: hours > 0 ? hours : "12",
            h: hours % 12 > 0 ? hours % 12 : 12,
            H: hours,
            i: minutes < 10 ? '0' + minutes : minutes,
            s: seconds < 10 ? '0' + seconds : seconds           
        };

        // loop through format array of characters and add matching data else add the format character (:,/, etc.)
        var date_string = "";
        for(var i=0;i<dateFormat.length;i++){
            var f = dateFormat[i];
            if(f.match(/[a-zA-Z]/g)){
                date_string += date_props[f] ? date_props[f] : '';
            } else {
                date_string += f;
            }
        }

        return date_string;
    };
/*
 *
 * END - Date class extension
 * 
 ************************************/
+18
06 мая '13 в 20:22
источник

Хорошо, у нас есть нечто, называемое Intl, которое очень полезно для форматирования даты в JavaScript в наши дни:

Ваша дата как ниже:

var date = '10/8/2010';

И вы меняете на Date, используя new Date(), как показано ниже:

date = new Date(date);

И теперь вы можете отформатировать его так, как вам нравится, используя список локалей, как показано ниже:

date = new Intl.DateTimeFormat('en-AU').format(date); // Australian date format: "8/10/2010" 


date = new Intl.DateTimeFormat('en-US').format(date); // USA date format: "10/8/2010" 


date = new Intl.DateTimeFormat('ar-EG').format(date);  // Arabic date format: "٨‏/١٠‏/٢٠١٠"

Если вы точно хотите формат, который вы упомянули выше, вы можете сделать:

date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(/\s/g, '-');

И результат будет:

"10-Aug-2010"

Для получения более подробной информации о Интернационализации API ECMAScript (Intl), посетите здесь.

+18
19 июл. '17 в 12:58
источник

Решение JavaScript без использования каких-либо внешних библиотек:

var now = new Date()
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
var formattedDate = now.getDate() + "-" + months[now.getMonth()] + "-" + now.getFullYear()
alert(formattedDate)
+15
21 июл. '14 в 8:49
источник

Если вы используете jQuery UI в своем коде, есть встроенная функция под названием formatDate(). Я использую его таким образом, чтобы форматировать сегодняшнюю дату:

var testdate = Date();
testdate = $.datepicker.formatDate( "d-M-yy",new Date(testdate));
alert(testdate);

Вы можете увидеть много других примеров даты форматирования в документации по jQuery UI.

+15
17 нояб. '14 в 13:32
источник

Полезный и гибкий способ форматирования DateTimes в JavaScript - это Intl.DateTimeFormat:

var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));

Результат: "12-Oct-2017"

Форматы даты и времени можно настроить с помощью аргумента параметров.

Объект Intl.DateTimeFormat - это конструктор для объектов, которые поддерживают форматирование даты и времени с учетом языка.

Синтаксис

new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])

параметры

локали

Необязательный. Строка с языковым тегом BCP 47 или массив таких строк. Для общей формы и интерпретации аргумента locales см. Страницу Intl. Следующие ключи расширения Unicode разрешены:

nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".

Опции

Необязательный. Объект с некоторыми или всеми из следующих свойств:

localeMatcher

Алгоритм сопоставления локали для использования. Возможные значения: "lookup" и "best fit"; по умолчанию "best fit". Информацию об этой опции смотрите на странице Intl.

часовой пояс

Часовой пояс для использования. Единственные значения, которые должны распознавать реализации, это "UTC"; по умолчанию используется часовой пояс по умолчанию. Реализации могут также распознавать имена часовых поясов в базе данных часовых поясов IANA, такие как "Asia/Shanghai", "Asia/Kolkata", "America/New_York".

hour12

Использовать ли 12-часовое время (в отличие от 24-часового). Возможные значения - true и false; значение по умолчанию зависит от локали.

formatMatcher

Алгоритм соответствия формата для использования. Возможные значения являются "basic" и "best fit"; по умолчанию "best fit". См. Следующие параграфы для получения информации об использовании этого свойства.

Следующие свойства описывают компоненты даты и времени для использования в форматированном выводе и их требуемые представления. Реализации должны поддерживать как минимум следующие подмножества:

weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute

Реализации могут поддерживать другие подмножества, и запросы будут согласовываться со всеми доступными комбинациями подмножеств-представлений, чтобы найти наилучшее совпадение. Для этого согласования доступны два алгоритма, которые выбираются свойством formatMatcher: полностью определенный "basic" алгоритм и зависящий от реализации алгоритм "наилучшего соответствия".

будний день

Представление дня недели. Возможные значения: "narrow", "short", "long".

эпоха

Представление эпохи. Возможные значения: "narrow", "short", "long".

год

Представление года. Возможные значения: "numeric", "2-digit".

месяц

Представление месяца. Возможные значения: "numeric", "2-digit", "narrow", "short", "long".

день

Представление дня. Возможные значения: "numeric", "2-digit".

час

Представление часа. Возможные значения: "numeric", "2-digit".

минут

Представление о минуте. Возможные значения: "numeric", "2-digit".

второй

Представление второе. Возможные значения: "numeric", "2-digit".

TimeZoneName

Представление названия часового пояса. Возможные значения: "short", "long". Значение по умолчанию для каждого свойства компонента даты и времени не определено, но если все свойства компонента не определены, то год, месяц и день считаются "numeric".

Проверить онлайн

Подробнее

+15
13 окт. '17 в 10:58
источник

У нас есть много решений для этого, но я думаю, что лучший из них - Moment.js. Поэтому я лично предлагаю использовать Moment.js для операций даты и времени.

console.log(moment().format('DD-MMM-YYYY'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
+14
29 авг. '16 в 9:48
источник

Это может помочь с проблемой:

var d = new Date();

var options = {   
    day: 'numeric',
    month: 'long', 
    year: 'numeric'
};

console.log(d.toLocaleDateString('en-ZA', options));

Date to locate format

+14
08 янв. '18 в 10:27
источник

Вот как я применил мои плагины npm

var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

var Days = [
  "Sunday", "Monday", "Tuesday", "Wednesday",
  "Thursday", "Friday", "Saturday"
];

var formatDate = function(dt,format){
  format = format.replace('ss', pad(dt.getSeconds(),2));
  format = format.replace('s', dt.getSeconds());
  format = format.replace('dd', pad(dt.getDate(),2));
  format = format.replace('d', dt.getDate());
  format = format.replace('mm', pad(dt.getMinutes(),2));
  format = format.replace('m', dt.getMinutes());
  format = format.replace('MMMM', monthNames[dt.getMonth()]);
  format = format.replace('MMM', monthNames[dt.getMonth()].substring(0,3));
  format = format.replace('MM', pad(dt.getMonth()+1,2));
  format = format.replace(/M(?![ao])/, dt.getMonth()+1);
  format = format.replace('DD', Days[dt.getDay()]);
  format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
  format = format.replace('yyyy', dt.getFullYear());
  format = format.replace('YYYY', dt.getFullYear());
  format = format.replace('yy', (dt.getFullYear()+"").substring(2));
  format = format.replace('YY', (dt.getFullYear()+"").substring(2));
  format = format.replace('HH', pad(dt.getHours(),2));
  format = format.replace('H', dt.getHours());
  return format;
}

pad = function(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}
+13
30 июл. '16 в 16:58
источник

new Date().toLocaleDateString()

// "3/21/2018"

Дополнительная документация на developer.mozilla.org

+13
15 янв. '18 в 2:33
источник
var today = new Date();
var formattedToday = today.toLocaleDateString() + ' ' + today.toLocaleTimeString();
+9
09 февр. '16 в 22:00
источник

Sugar.js имеет отличные расширения для объекта Date, включая метод Date.format.

Примеры из документации:

Date.create().format('{Weekday} {Month} {dd}, {yyyy}');

Date.create().format('{12hr}:{mm}{tt}')
+8
22 окт. '12 в 22:10
источник

Любой, кто ищет действительно простое решение ES6 для копирования, вставки и использования:

const dateToString = d => '${d.getFullYear()}-${('00' + (d.getMonth() + 1)).slice(-2)}-${('00' + d.getDate()).slice(-2)}' 

// how to use:
const myDate = new Date(Date.parse('04 Dec 1995 00:12:00 GMT'))
console.log(dateToString(myDate)) // 1995-12-04
+7
07 мая '18 в 15:00
источник

Чтобы получить "10 августа 2010", попробуйте:

var date = new Date('2010-08-10 00:00:00');
date = date.toLocaleDateString(undefined, {day:'2-digit'}) + '-' + date.toLocaleDateString(undefined, {month:'short'}) + '-' + date.toLocaleDateString(undefined, {year:'numeric'})

Для поддержки браузера, см. ToLocaleDateString.

+6
05 февр. '19 в 19:39
источник

Добавьте плагин jQuery UI на свою страницу:

function DateFormate(dateFormate, datetime) {
    return $.datepicker.formatDate(dateFormate, datetime);
};
+4
29 июн. '12 в 12:02
источник

Попробуйте следующее:

function init(){
    var d = new Date();
    var day = d.getDate();
    var x = d.toDateString().substr(4, 3);
    var year = d.getFullYear();
    document.querySelector("#mydate").innerHTML = day + '-' + x + '-' + year;
}
window.onload = init;
<div id="mydate"></div>
+4
31 дек. '15 в 10:01
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос