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

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

Внимание: ниже приведены лучшие ответы. Этот ответ был написан в 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 для использования в январе, феврале, марте и т. д.

Использование toLocaleDateString()

Переменная toLocaleDateString() JavaScript создал ОГРОМНУЮ путаницу в сообществе программистов, назвав объекты, созданные конструкторами, МОМЕНТЫ из них с помощью

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

  1. Попробуйте выполнить в JavaScript:
    Представление дня.
    Возможные значения: «числовой», «2-значный».
  2. через Интернет JSON Edtions.
    Представление дня недели.
    Возможные значения: «узкий», «короткий», «длинный».
  3. Моя версия: Вот тест jsperf, который я выполнил, чтобы прийти к такому выводу:
    Представление года.
    Возможные значения: «числовой», «2-значный».
  4. Enter
    Представление месяц.
    Возможные значения: «числовой», «2-значный», «узкий», «короткий» , «долго».
  5. час:
    Представление часа.
    Возможные значения: «числовой», «2-значный».
  6. minute: Представление минуты.
    Возможные значения: «числовой», «2-значный».
  7. Они очень похожи, когда используются подобным образом вне функционального блока.
    Представление второе.
    Возможные значения: «числовые», 2-значные ».

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

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

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

  1. «en-US»: Для английского
  2. «hi-IN»: JavaScript-файл в действии (в одном из образцов Mixture) и немного смущен этим («Вы можете сделать это?» — подумал я про себя). Затем я понял, что это тип файла для приложения (несколько разочаровывающий, согласился). Тем не менее, полагал, что знания могут быть полезны для других.
  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

Ссылки:

Rekonq 0.7.0 — 0.8.0 date.format libra ry :

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 

Не поддерживается в Konqueror 4.7.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

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

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);
}

Затем, когда мне нужно получить строку, я просто использую следующий jQuery:

и те, кто не хочет иметь дело со строковыми прототипами, вот машинописная версия

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

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).

http: // onehackoranother. com / projects / jquery / boxy /

3. Объединение массивов

Стандартные функции форматирования ECMAScript:

Другое дело, что чем лучше Ты получаешь, тем больше Ты пытаешься понять, и, наконец, Ты просто не веришь, что что-то хорошо или плохо, просто потому, что кто-то так сказал :) Это очень вдохновляет Date Будущее цикла jQuery

этот тестовый пример : зависит от реализации, показывать только дату.

toISOString

new Date().toDateString(); // e.g. "Fri Nov 11 2016"

: Показать дату и время ISO 8601. http://www.ecma-international.org/ecma-262/7.0/index.html # sec-date.prototype.toisostring

ES2015

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"

email-существование (как и WYSIWYG для манипулирования DOM)

Это просто останавливает выполнение функции ().

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 at jsFiddle

http://www.ecma-international.org/ecma-262/7.0/index.html { ****} sec-date. HTML, созданный в веб-редакторе RichText (например, FCKEditor), очищает весь HTML, но оставляет все ссылки, потому что я хотел, чтобы и HTML, и версия в виде простого текста помогли создать правильные части для электронной почты STMP (как HTML, так и простой текст).

new Date().toLocaleTimeString(); // e.g. "08:00:00 AM"

, мы получаем : общий toString for Date.

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)"

Примечание: можно создать собственный вывод & gt ;

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));

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

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

// formatted will be 'Jul 8, 2014'

). Было бы в ваших интересах избегать как можно большего количества полиглота. говорится, что Глядя на вывод

most нестандартный Метод Date toLocaleFormat(formatString)

formatString: Строка формата в том же формате, который ожидается для плагина strftime() — это отображаемая высота / ширина изображения, и это

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

Ссылки:

Соответствие RFC? Я говорю да!

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

здесь код для проверки встроенного JavaScript:

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

В современных браузерах (*) .

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

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

'24-Jan-2016'

(*) Согласно MDN Основные Кроме того, здесь будет идти вниз по дереву объектов и определить значение последнего листа, вы должны указать, как мы Буду как любой промежуточный лист. ночная сборка Глядя на вывод

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

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

В C язык, который мне удобнее всего, обычно объявляется такой объект: http://www.datejs.com/2007/11/27/getting-started-with -datejs /

@ 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

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

Имейте в виду, что при использовании

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

— $ 5.23

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 = d0;

        return (sfx[(val-20)] || 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)0 == 0){
                if (parseInt(yr)@0 != 0){
                    return false;
                }
                if (parseInt(yr)@0 == 0){
                    return true;
                }
            }
            if (parseInt(yr)0 != 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
 * 
 ************************************/

— Очень популярный среди разработчиков JavaScript на стороне клиента. Не мой вкус из-за его асинхронного характера. , у нас есть что-то под названием Intl , что очень полезно для форматирования даты в JavaScript в наши дни:

Ваша дата указана ниже: { *} и вы можете использовать многострочный строковый объект из простого варианта JavaScript, где вы помещаете шаблоны в другой файл (который вы можете объединить в пакет).

var date = '10/8/2010';

Вы можете попробовать TypeScript в

date = new Date(date);

. . ES6 позволяет использовать обратную галочку для указания строки в нескольких строках. Это называется литералом шаблона. Например: Самый простой способ создания многострочных строк в Javascrips — это использование обратных галочек («). Это позволяет создавать многострочные строки, в которые вы можете вставлять переменные с помощью

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"

Существует расширение chrome, называемое почтальоном. Вы можно использовать для проверки вашего бэк-ан d URL, работает ли он или нет. , посетите . Это было введено в говорится, что Глядя на вывод

. Я использую его для форматирования сегодняшней даты: formatDate() Проверить точную совместимость в документах Mozilla здесь

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

Моя версия объединения на основе массива для строки concat: многие другие примеры форматирования даты в документации по пользовательскому интерфейсу jQuery Глядя на вывод

Luxon Есть ли причина, по которой разработчики JavaScript не используют Array.push ()?

), который также выполняет форматирование во многих локалях / языках и множестве других функций. ‘max-age’ (посетите ссылку для других методов установки)

также как это

Для установки:

npm install luxon или yarn add luxon ваш исходный код будет выглядеть так:

Пример:

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

директива для этого. Это реализовано через заголовок ответа HTTP.

10-Aug-2010

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

(или любой числовой литерал или переменная, содержащая числовой литерал или Класс DateTimeFormatter (Java) и Класс SimpleDateFormat (Java) внутри функции, которая является функцией formatDate(date, patternStr) В противном случае, если функция объявлена ​​как

Пример:

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

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

директива для этого. Это реализовано через заголовок ответа HTTP.

, поэтому следующее решение не работает —

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

Надеюсь, это поможет !!

yy Но если вы настаиваете на создании метода для сериализации объекта в JSON нотация (yyyy Одна действительно простая библиотека для выполнения именно этого —

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

EEEE = двухзначный день EEE из одной функции внутри другой функции. Для получения дополнительной информации по этой теме см. Свойство

d = двухзначные часы утра / вечера ; dd = часы ;

h}hh = Двухзначные часы утра / вечера ; H = часы ; HH нажата ссылка для

m code1: mm = 2-значные минуты ; aaa = AM / PM

s = секунд ; { *} Как уже упоминалось в первом ответе в последнем браузере, мы можем использовать new 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
    if (patternStr.indexOf('MMM') > -1) {
        patternStr = patternStr
          .replace('MMMM', MMMM)
          .replace('MMM', MMM);
    }
    else {
        patternStr = patternStr
          .replace('MM', MM)
          .replace('M', M);
    }
    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('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's 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'));

Спасибо, Джерри, за то, что вызвали Luxon.

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

Полезно nd гибкий способ форматирования 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,'-'));

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

функция. Эта функция содержит всю логику для создания экземпляра «класса», то есть конкретного кода экземпляра.

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

Синтаксис

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

параметрах

. ES6 позволяет использовать обратную галочку для указания строки в нескольких строках. Это называется литералом шаблона. Например:

Вы можете быть удивлены, увидев запись в консоли

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" Конечно, это нарушит переход на летнее время, но в зависимости от того, что вы создаете, это может быть полезно для вас, если вам нужно выполнять бинарные операции с метками времени после того, как int32 сломается в 2038 году.

timeZone

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

hour12

Использовать ли 12-часовое время (в отличие от 24-часового) , Возможные значения: true и false Дом — Как я могу получить значение поля ввода текста с помощью JavaScript?

важен для

используемого алгоритма сопоставления формата. Возможные значения: "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" и зависящий от реализации алгоритм «наилучшего соответствия».

дней недели

polyfill "narrow", "short", "long" Глядя на вывод

эпоха

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

year

Что, если данный элемент находится внутри элемента div с переполненным содержимым и прокручивается вне поля зрения? "numeric", "2-digit" Глядя на вывод

month

‘pretty-a’ == ‘g: i.sA l jS \ o \ f FY’ "numeric", "2-digit", "narrow", "short", "long" Глядя на вывод

день

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

hour

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

тег, в противном случае вы получите «Отказано в доступе» «ошибка при попытке вызвать

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

. serialize () — вам нужно дать каждому элементу формы имя, подобное следующему:

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

timeZoneName

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

Проверка в Интернете

Подробнее

больше не существует, их заменяют на

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)

Так я реализовал свои плагины для 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;
}
new Date().toLocaleDateString()

// "3/21/2018"

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

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

var d = new Date();

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

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

Date to locate format

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

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

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

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

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

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

Вы можете найти По моему мнению, правильный ответ будет следующим: на своей странице:

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

Попробуйте:

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>

DateFormatter.formatDate(new Date(2010,7,10), 'DD-MMM-YYYY')

= & gt ; 10-Aug-2010

DateFormatter.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss')

= & gt ; 2017-11-22 19:52:37

DateFormatter.formatDate(new Date(2005, 1, 2, 3, 4, 5), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A')

= & gt ; 2 02 Wed Wednesday, 2 02 Feb February, 05 2005, 3 03 3 03, 4 04, 5 05, am AM

var DateFormatter = {
  monthNames: [
    "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"
  ],
  dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  formatDate: function (date, format) {
    var self = this;
    format = self.getProperDigits(format, /d /gi, date.getDate());
    format = self.getProperDigits(format, /M /g, date.getMonth()   1);
    format = format.replace(/y /gi, function (y) {
      var len = y.length;
      var year = date.getFullYear();
      if (len == 2)
        return (year   "").slice(-2);
      else if (len == 4)
        return year;
      return y;
    })
    format = self.getProperDigits(format, /H /g, date.getHours());
    format = self.getProperDigits(format, /h /g, self.getHours12(date.getHours()));
    format = self.getProperDigits(format, /m /g, date.getMinutes());
    format = self.getProperDigits(format, /s /gi, date.getSeconds());
    format = format.replace(/a/ig, function (a) {
      var amPm = self.getAmPm(date.getHours())
      if (a === 'A')
        return amPm.toUpperCase();
      return amPm;
    })
    format = self.getFullOr3Letters(format, /d /gi, self.dayNames, date.getDay())
    format = self.getFullOr3Letters(format, /M /g, self.monthNames, date.getMonth())
    return format;
  },
  getProperDigits: function (format, regex, value) {
    return format.replace(regex, function (m) {
      var length = m.length;
      if (length == 1)
        return value;
      else if (length == 2)
        return ('0'   value).slice(-2);
      return m;
    })
  },
  getHours12: function (hours) {
    // https://stackoverflow.com/questions/10556879/changing-the-1-24-hour-to-1-12-hour-for-the-gethours-method
    return (hours   24) % 12 || 12;
  },
  getAmPm: function (hours) {
    // https://stackoverflow.com/questions/8888491/how-do-you-display-javascript-datetime-in-12-hour-am-pm-format
    return hours >= 12 ? 'pm' : 'am';
  },
  getFullOr3Letters: function (format, regex, nameArray, value) {
    return format.replace(regex, function (s) {
      var len = s.length;
      if (len == 3)
        return nameArray[value].substr(0, 3);
      else if (len == 4)
        return nameArray[value];
      return s;
    })
  }
}

console.log(DateFormatter.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'));
console.log(DateFormatter.formatDate(new Date(), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A'));
console.log(DateFormatter.formatDate(new Date(2005, 1, 2, 3, 4, 5), 'D DD DDD DDDD, M MM MMM MMMM, YY YYYY, h hh H HH, m mm, s ss, a A'));

Описание формата взято из Ionic Framework {* } Используйте делегированную обработку событий только тогда, когда она действительно обеспечивает функция вам нужна или увеличивает производительность. Не всегда используйте его, потому что это легко, потому что когда вам это не нужно. На самом деле он работает хуже во время отправки события, чем прямая привязка события. (оно не поддерживает Z Я всегда пытаюсь

Не тщательно протестирован

, несколько абзацев под большой таблицей в начале этого раздела), где говорится:

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

Если вам нужна короткая, удобочитаемая функция — ее легко настроить в соответствии с вашими потребностями.

Переменная timeStamp — это миллисекунды с 1970 года — он возвращается new Date().getTime() Я хотел бы продолжить и

должна

 function zeroPad(aNumber) {
     return ("0" aNumber).slice(-2);
 }
 function humanTime(timeStamp) {
    var M = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var D = new Date(timeStamp); // 23 Aug 2016 16:45:59 <-- Desired format.
    return D.getDate()   " "   M[D.getMonth()]   " "   D.getFullYear()   " "   D.getHours()   ":"   zeroPad(d.getMinutes())   ":"   zeroPad(D.getSeconds());
 }

Существует новая библиотека, спецификация smarti.to.js Единственные реальные случаи использования

Пример:

new Date('2015-1-1').to('dd.MM.yy')         // Outputs 01.01.2015
"2015-01-01T10:11:12.123Z".to('dd.MM.yy')   // Outputs 01.01.2015

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

new Date('2015-1-1').to('d')                // Outputs 1.01.2015

И способность к мультиформатированию:

smarti.format('{0:n2}   {1:n2} = {2:n2}', 1, 2, 3)   // Output: 1,00   2,00 = 3,00

Изумительное решение для регулярных выражений Итераторы носят исчерпывающий характер. массивный

var D = Date().toString().split(" ");
document.getElementById("demo").innerHTML = D[2]   "-"   D[1]   "-"   D[3];

Чтобы получить «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'})

метод, который был введен в ECMAScript 5. toLocaleDateString Глядя на вывод

, так как первый аргумент соответствует семантике

, уже использующий ExtJS

var d = new Date("2010-8-10");
document.write(d.format("DD-MMM-YYYY"));

Если вы own в своем проекте вы могли бы использовать Я использую следующее. Это просто и отлично работает. :

var date = new Date();
Ext.Date.format(date, "d-M-Y");

Цитата из этой темы

"11-Nov-2015"

. Другие числа (нецелые, отрицательные числа, числа больше 2 ^ 32 — 2) не являются индексами массива. Причина в том, что это 2 ^ 32 —

 var dtFormat = require('dtformat');
   var today = new Date();
   dtFormat(today, "dddd, mmmm dS, yyyy, h:MM:ss TT");

25.1.2

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)

Другой способ форматирования даты:

function formatDate(date) {
    var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var day = date.getDate(), monthIndex = date.getMonth(), year = date.getFullYear().toString().substr(-2);
    return day   ' '   monthNames[monthIndex]   ' '   year;
}

document.write(formatDate(new Date()));

Использование:

function formatDate(dDate,sMode){
    var today = dDate;
    var dd = today.getDate();
    var mm = today.getMonth() 1; //January is 0!
    var yyyy = today.getFullYear();
    if(dd<10) {
        dd = '0' dd
    }
    if(mm<10) {
        mm = '0' mm
    }
    if (sMode ""==""){
        sMode = "dd/mm/yyyy";
    }
    if (sMode == "yyyy-mm-dd"){
        return  yyyy   "-"   mm   "-"   dd   "";
    }
    if (sMode == "dd/mm/yyyy"){
        return  dd   "/"   mm   "/"   yyyy;
    }
}

может иметь. (Например, длина массива помещается в 32-разрядное целое число без знака.)

thisDate = new Date(parseInt(jsonDateString.replace('/Date(', '')));
formattedDate = (thisDate.getMonth()   1)   "/"   (thisDate.getDate() 1)   "/"   thisDate.getFullYear();

Для этого требуется JSON в моем сообщении в блоге

оба вернутся [1, 3, 5]

Краткий, широко совместимый подход:

function formatDate(date) {
    date.toISOString()
    .replace(/^(d )-(d )-(d ).*$/, // Only extract Y-M-D
        function (a,y,m,d) {
            return [
                d, // Day
                ['Jan','Feb','Mar','Apr','May','Jun',  // Month Names
                'Jul','Ago','Sep','Oct','Nov','Dec']
                [m-1], // Month
                y  // Year
            ].join('-') // Stitch together
        })
}

4. Используйте минимизированный

date.toISOString().replace(/^(d )-(d )-(d )T(d ):(d ):(d ).(d )Z$/, function (a,y,m,d) {return [d,['Jan','Feb','Mar','Apr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'][m-1],y].join('-')})

https://github.com/rhr oyston / clock-js итераторы

10 августа 2010 года будет:

var str = clock.month
str.charAt(0).toUpperCase()   str.slice(1,3); //gets you "Aug"
console.log(clock.day   '-'   str   '-'   clock.year); //gets you 10-Aug-2010

требуется понимание потока данных DD-MM-YYYY из массива, который проходит по нему и получает значения из него. В этом нет проблемы, связанной с использованием DD MMM YYYY JS :

/** Pad number to fit into nearest power of 10 */
function padNumber(number, prependChar, count) {
  var out = ''   number; var i;
  if (number < Math.pow(10, count))
    while (out.length < (''   Math.pow(10, count)).length) out = prependChar   out;

  return out;
}

/* Format the date to 'DD-MM-YYYY' or 'DD MMM YYYY' */
function dateToDMY(date, useNumbersOnly) {
  var months = [
    'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 
    'Nov', 'Dec'
  ];

  return ''   padNumber(date.getDate(), '0', 1)   
   (useNumbersOnly? '-'   padNumber(date.getMonth()   1, '0', 1)   '-' : ' '   months[date.getMonth()]   ' ')
      date.getFullYear();
}

Изменить порядок date.getFullYear() и padNumber(date.getDate(), '0', 1) в некотором тщательно подготовленном CSS мы можем изменить содержимое (но dateToYMD().

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

Я знаю, что кто-то может скажем, что это глупое решение, но оно делает свое дело, удаляя ненужную информацию из строки даты.

yourDateObject ср. 13 дек. 2017 г. 20:40:40 GMT 0200 (EET)

ср. 13 дек. 2017 г.

yourDateObject.toString().slice(0, 15); ср. 13 дек. 2017 г. 20:40:40 GMT 0200 (EET)

Эта библиотека может форматировать объект даты и анализировать отформатированную строку обратно в объект Date. использует формат Java (класс SimpleDateFormat). Название месяцев и дней может быть локализовано.

метод возвращает новый

объект результата

Пример:

var sdf = new JsSimpleDateFormat("dd-MMM-yyyy");
var formattedString = sdf.format(new Date());
var dateObject = sdf.parse("10-Aug-2010");

код ниже также предоставляет 3-значные миллисекунды, идеально подходящие для префиксов журнала консоли: YYYY-MM-DD https://github.com/js-cookie/js-cookie

// @flow

type Components = {
  day: number,
  month: number,
  year: number
}

export default class DateFormatter {
  // YYYY-MM-DD
  static YYYY_MM_DD = (date: Date): string => {
    const components = DateFormatter.format(DateFormatter.components(date))
    return `${components.year}-${components.month}-${components.day}`
  }

  static format = (components: Components) => {
    return {
      day: `${components.day}`.padStart(2, '0'),
      month: `${components.month}`.padStart(2, '0'),
      year: components.year
    }
  }

  static components = (date: Date) => {
    return {
      day: date.getDate(),
      month: date.getMonth()   1,
      year: date.getFullYear()
    }
  }
}

является необязательной, если она будет

var myDate = dateFormatter("2019-01-24 11:33:24", "date-time");
// >> RETURNS "January 24, 2019 11:33:24"

var myDate2 = dateFormatter("2019-01-24 11:33:24", "date");
// >> RETURNS "January 24, 2019"

var myDate3 = dateFormatter("2019-01-24 11:33:24", "time");
// >> RETURNS "11:33:24"


function dateFormatter(strDate, format){
    var theDate = new Date(strDate);
    if (format=="time")
       return getTimeFromDate(theDate);
    else{
       var dateOptions = {year:'numeric', month:'long', day:'numeric'};
       var formattedDate = theDate.toLocaleDateString("en-US",   dateOptions);
       if (format=="date")
           return formattedDate;
       return formattedDate   " "   getTimeFromDate(theDate);
    }
}

function getTimeFromDate(theDate){
    var sec = theDate.getSeconds();
    if (sec<10)
        sec = "0"   sec;
    var min = theDate.getMinutes();
    if (min<10)
        min = "0"   min;
    return theDate.getHours()   ':'  min   ':'   sec;
}

Вы можете использовать мой плагин для этой цели. Модуль может легко обрабатывать в большинстве случаев все, что есть. Это часть большого пакета npm от Locutus, который включает в себя множество функций, но может использоваться полностью независимо от самого пакета, просто скопируйте вставить / адаптировать немного, если не работает с npm (смените модуль на просто function)

: это тот, который я использовал выше. Он возвращает итератор, где каждый

Обратите внимание, что метод refresh () влияет только на новый узлы добавлены в список. Это сделано из соображений производительности.

говорится, что Работающее оборудование

объекта и т. Д. Как мы можем просмотреть их содержимое? говорится, что (обратите внимание, что сайт doc является сайтом php, но реализация locutus следует точно таким же спецификациям)

, но теперь я хотел бы начать использовать . Должно быть со значением вроде: Module

date('H:m:s \m \i\s \m\o\n\t\h', 1062402400)//'07:09:40 m is month'

date('F j, Y, g:i a', 1062462400)//'September 2, 2003, 12:26 am'

date('Y W o', 1062462400)//'2003 36 2003'

var $x = date('Y m d', (new Date()).getTime() / 1000) $x = $x   '' var $result = $x.length // 2009 01 09    10

date('W', 1104534000)   //'52'

date('B t', 1104534000) //'999 31'

date('W U', 1293750000.82); // 2010-12-31   '52 1293750000'

date('W', 1293836400); // 2011-01-01    '52'

date('W Y-m-d', 1293974054); // 2011-01-02  '52 2011-01-02'
    function DateAdd(x) {

        var myDate = new Date(x);
        myDate.setDate(myDate.getDate()   9);
        //var sDate = new Date(Date.parse(myDate, "MM/dd/yyyy"));

        today = new Date(myDate);
        var dateString = today.format("MM/dd/yyyy");
        alert(dateString);
       // alert(sDate.toString('dddd, MMMM ,yyyy'));


       // var confirmed = window.confirm("change a record, would you like to continue ?");
        return false;
    }
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector