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

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

Ответ 1

Внимание: Ниже приведены более качественные ответы. Этот ответ был написан в 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

Ответ 2

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

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

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

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

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

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

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

  1. "en-US": для английского языка
  2. "hi-IN": для хинди
  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

Ответ 4

Если вам нужно быстро форматировать дату, используя обычный 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

Ответ 5

Ну, я хотел преобразовать сегодняшнюю дату в 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);
}

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

Ответ 6

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

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

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

Ответ 7

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

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

// formatted will be 'Jul 8, 2014'

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

Ответ 8

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

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

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

Литература:

Ответ 9

Обычный 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

Ответ 10

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

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 >

Ответ 11

Вы должны посмотреть 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/

Ответ 13

Я могу получить ваш запрошенный формат в одной строке без использования библиотек и методов 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) возвращают одинаковый формат строк.

Ответ 14

Использование шаблона строки 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);

Ответ 15

Пакетное решение: 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-Aug-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 реализован в фрагменте кода ниже)

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

Friday, October 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)
    ;
    // checks to see if month name will be used
    patternStr = 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('EEEE', EEEE).replace('EEE', EEE)
      .replace('yyyy', yyyy)
      .replace('yy', yy)
      .replace('aaa', aaa);
    if (patternStr.indexOf('MMM') > -1) {
        patternStr = patternStr
          .replace('MMMM', MMMM)
          .replace('MMM', MMM);
    }
    else {
        patternStr = patternStr
          .replace('MM', MM)
          .replace('M', M);
    }
    return patternStr;
}
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'));

Ответ 16

Вот код, который я только что написал для обработки форматирования даты для проекта, над которым я работаю. Он имитирует функциональность форматирования даты 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
 * 
 ************************************/

Ответ 17

Хорошо, у нас есть нечто, называемое 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

Решение 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)

Ответ 19

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

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

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

Ответ 20

Полезный и гибкий способ форматирования 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".

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

Подробнее

Ответ 21

У нас есть много решений для этого, но я думаю, что лучший из них - 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>

Ответ 22

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

var d = new Date();

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

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

Ответ 23

Вот как я применил мои плагины 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;
}

Ответ 24

new Date().toLocaleDateString()

// "3/21/2018"

Ответ 25

var today = new Date();
var formattedToday = today.toLocaleDateString() + ' ' + today.toLocaleTimeString();

Ответ 26

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

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

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

Date.create().format('{12hr}:{mm}{tt}')

Ответ 27

Любой, кто ищет действительно простое решение 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

Ответ 28

Чтобы получить "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.

Ответ 29

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

function DateFormate(dateFormate, datetime) {
    return $.datepicker.formatDate(dateFormate, datetime);
};

Ответ 30

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

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>