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

1529

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

  • 125
    Как обычно: будьте осторожны, МЕСЯЦ НУЛЕВАЕТСЯ! Так что январь ноль, а не один ...
  • 7
    Также будьте осторожны, myDate.getDay() не возвращает день недели, а myDate.getDay() местоположение дня недели, связанного с неделей. myDate.getDate() возвращает текущий день недели .
Показать ещё 5 комментариев
Теги:
date
date-format
time-format

49 ответов

1008
Лучший ответ

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

  • 1
    Или расширьте объект Date , как я это сделал на stackoverflow.com/questions/3187790/…
  • 300
    Действительно подумайте об использовании библиотеки, такой как Moment.js или Date.js. Эта проблема была решена много раз.
Показать ещё 23 комментария
1375

Используйте 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

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

  • 0
    Я думаю, что вы имеете в виду toLocaleString / toLocaleDateString ... Метод toDateString не принимает никаких параметров. developer.mozilla.org/de/docs/Web/JavaScript/Reference/...
  • 12
    Почти собирался использовать moment.js для простого формата. К счастью, сделал дополнительный поиск в Google и обнаружил, что для этого уже существует нативный API. Сохранена внешняя зависимость. Потрясающие!
Показать ещё 10 комментариев
520

Используйте 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/

  • 4
    это может показаться более длинным решением, но сжатым и используемым на сайте, где справедливо используются даты, было бы лучшим решением!
  • 0
    Его код для "L" для cantiseconds неправильный, он должен удалить "L> 99?" часть ... Кроме этого, это довольно аккуратно, если не слишком хорошо локализуется.
Показать ещё 7 комментариев
363

Если вам нужно быстро форматировать дату, используя обычный 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
  • 37
    Префикс "0" .slice (-2) - это действительно хороший способ обеспечить заполненные нули. Melikes
  • 0
    Можете ли вы рассказать, как получить формат, как понедельник, 23 марта 2018 года?
Показать ещё 2 комментария
340

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

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

  • 0
    Оценка краткости, если вы можете принять формат даты ISO
  • 5
    Вы можете сделать new Date(date + " UTC") чтобы обмануть часовой пояс, и вы можете удалить строку setMinutes. Человек, яваскрипт грязный
Показать ещё 6 комментариев
161

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

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

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));
  • 2
    Спасибо за последний. Полезно для установки значения даты для ввода даты HTML.
155

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

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

// formatted will be 'Jul 8, 2014'

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

  • 13
    Как я уже сказал - если jQueryUI уже используется в проекте - почему бы не использовать функцию форматирования даты datepicker? Эй, ребята, я не понимаю, почему я получаю отрицательное голосование по моему ответу? Пожалуйста, объясни.
  • 5
    Это может быть потому, что кто-то может включить jQuery UI только для функции формата даты, или это может быть потому, что средство выбора даты является необязательной частью библиотеки, но, вероятно, это потому, что ненавидеть jQuery модно.
Показать ещё 6 комментариев
115

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

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

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

Литература:

  • 147
    toLocaleFormat () работает только в Firefox. IE и Chrome терпят неудачу для меня.
  • 15
    В Chrome есть метод .toLocaleString ('en'). Похоже, что новый браузер поддерживает этот developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Показать ещё 5 комментариев
99

Обычный 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
  • 0
    Я думаю, что вам, вероятно, понадобится больше материала для свиданий !!
82

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

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 >

  • 0
    Есть ли способ проверить, поддерживается ли эта функция, и если нет, по умолчанию для более простого решения?
  • 0
    @JamesWierzba: Вы можете использовать этот polyfill !
Показать ещё 1 комментарий
47

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

  • 0
    Благодарю. Это очень полная и полная библиотека с небольшим объемом.
  • 0
    Я думаю, что в настоящее время я получаю число из Date.parse, в то время как let date = new Date (fromString) имеет больше функций. К сожалению, к моему удивлению, toString, похоже, просто отображает значение по умолчанию, не интерпретируя переданный аргумент для его форматирования. Использование NodeJS 11+ toDateString является более коротким выводом, но не требует форматирования. Все, что я вижу, это очень замысловатый toLocaleDateString
34

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

  • 0
    console.log(new Date().toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3'));
  • 0
    @ Андре - я согласен. Если бы это был мой код, я бы наверняка включил в него комментарий, который объясняет регулярное выражение и дает пример ввода и соответствующего вывода.
32

@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

  • 5
    Вместо того, чтобы делать .replace (), вы можете просто использовать 'en-GB' в качестве локали. :)
  • 0
    Это действительно хорошо, например, new Date().toLocaleDateString("en-EN", {month: "short", weekday: "short", day: "2-digit", year: "numeric"}) возвращает "Wed, Sep 06, 2017"
Показать ещё 1 комментарий
26

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

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

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

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

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

14

У нас есть много решений для этого, но я думаю, что лучший из них - 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>
  • 0
    почему ты включаешь jquery?
  • 1
    Ох, извините, его не требуется. Спасибо @Ced
Показать ещё 3 комментария
13

new Date().toLocaleDateString()

// "3/21/2018"

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

  • 1
    Следует отметить, что вам никогда не следует использовать document.write (). Огромные проблемы с безопасностью и производительностью
13

Вот как я применил мои плагины 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;
}
  • 0
    На какую посылку вы ссылаетесь?
  • 2
    полезные данные
Показать ещё 2 комментария
12

Пакетное решение: moment.js

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

Установить:

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

Пример:

moment("2010-08-10").format("DD-MMM-YYYY")

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

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'));
  • 1
    Кстати, проблемный класс SimpleDateFormat был вытеснен несколько лет назад классом java.time.format.DateTimeFormatter .
  • 1
    @BasilBourque, отметил. Они оба используют одни и те же шаблоны. Я был на проекте до Java8 в течение 5 лет, поэтому я никогда не сталкивался с новыми вещами. Спасибо!
Показать ещё 3 комментария
12

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

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

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

Подробнее

10

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

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

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

Привет, проверьте, помогает ли эта проблема.

var d = new Date();

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

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

Изображение 2134

  • 0
    или d.toLocaleDateString('en-US', options); если вы в США.
7

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

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

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

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

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

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>
3

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

= > 10-Aug-2010

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

= > 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')

= > 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, UTC Timezone Offset)

Не проверено полностью

3

Вдохновленный JD Smith чудесным решением для регулярных выражений, у меня внезапно возникла идея раскалывания головы:

var D = Date().toString().split(" ");
document.getElementById("demo").innerHTML = D[2] + "-" + D[1] + "-" + D[3];
  • 1
    Отличный вариант, если вам это нужно прямо в DOM!
3

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

Параметр 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());
 }
3

Существует новая библиотека smarti.to.js, для локализованного форматирования номеров JavaScript, дат и дат JSON (Microsoft или ISO8601).

Пример:

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

В файле локализации также есть пользовательские короткие шаблоны (smarti.to. {culture}.js). Пример (smarti.to.et-EE.js):

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
3

Вот script, который делает именно то, что вы хотите

https://github.com/UziTech/js-date-format

var d = new Date("2010-8-10");
document.write(d.format("DD-MMM-YYYY"));
  • 1
    Расширение нативных прототипов не очень хорошая идея. Существует множество других инструментов, таких как Moment.js, которые выполняют то же самое, не касаясь прототипа Date.
3

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

function DateFormate(dateFormate, datetime) {
    return $.datepicker.formatDate(dateFormate, datetime);
};
  • 11
    Не добавляйте jQuery и jQuery UI только для форматирования даты!
  • 2
    если вы уже используете Jquery UI в своем проекте, это может быть хорошим подходом, но кажется, что вы можете показать только часть даты, без часов, минут или секунд
Показать ещё 1 комментарий
2

Другой способ, по которому вы можете форматировать дату

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

Я размещаю здесь для будущей справки и готовой к копированию-вставки, это основной ответ, измененный, чтобы иметь 3-месячные месяцы и 2-значный год:

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

Я использую следующее. Это просто и прекрасно работает.

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

Или это:

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

Если вы уже используете ExtJS в своем проекте, вы можете использовать Ext.Date:

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

возвращает:

"11-Nov-2015"
1

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

yourDateObject производит:

Ср Дек 13 2017 20:40:40 GMT + 0200 (EET)

yourDateObject.toString().slice(0, 15); производит:

Ср 13 дек 2017

1

Следующий код позволит вам отформатировать дату до DD-MM-YYYY (27-12-2017) или DD MMM YYYY (27 декабря 2017 года):

/** 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), чтобы сделать функцию dateToYMD().

Подробнее см. repl.it example.

1

2,39 КБ. Один файл. https://github.com/rhroyston/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



  • 2
    Все еще приходится делать такие вещи, как str.charAt(0).toUpperCase() + str.slice(1,3); Отчасти побеждает цель использования библиотеки. Почему бы вам не добавить стандартную поддержку трехбуквенных форматов? Кроме того, вы можете рассмотреть возможность добавления интернационализации в вашу библиотеку, поскольку подобная библиотека была бы бесполезна для неанглоязычных веб-сайтов без нее!
1

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

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

Или, как одна строка:

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('-')})
0

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

0

Простая функция, которая может возвращать дату, дату + время или просто время:

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

0

Вам не нужны никакие библиотеки, просто извлеките компоненты даты и создайте строку. Вот как можно получить формат YYYY-MM-DD, также обратите внимание на индекс месяца "январь равен 0, февраль равен 1 и т.д.".

// @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()
    }
  }
}
0

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

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

Это принимает JSON date, "/Date (1429573751663)/" и производит как форматированную строку:

"4/21/2015"

-1

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

http://www.javascriptsource.com/repository/javascripts/2009/03/880961/JS_Simple_Date_Format.zip

Пример:

var sdf = new JsSimpleDateFormat("dd-MMM-yyyy");
var formattedString = sdf.format(new Date());
var dateObject = sdf.parse("10-Aug-2010");
  • 3
    Неизвестная библиотека, о которой я никогда не слышал, распространяемая по zip-файлу, без онлайн-документов, контроля версий и нулевой информации о ней, которую я могу найти в Google? Да, я попробую один из других ответов, спасибо. -1.
-2

Ниже преобразуется строка JsonDate в дату

 function dateParser(jsonDate) {
    if (jsonDate != null) {
        var date = new Date(parseInt(jsonDate.substr(6)));
        var datestring = date.toLocaleFormat('%d-%b-%Y');
        return datestring.replace(/-/g, " ");
    }
    else { return ''; }
}
-6
    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;
    }
  • 7
    -1; как за этот мусор проголосовали? Во избежание путаницы: format() не является методом объектов Date и приведенный выше код не будет работать, если вы не добавили некоторую реализацию format() в Date.prototype . Без предложения такой реализации этот ответ бесполезен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню