Форматирование даты javascript

#javascript

#javascript

Вопрос:

Я использую var dateString= new Date(parseInt(dateStringUnix)); и получаю строку как Sun Jun 10 2012 16:40:16 GMT 0200 (ora legale Europa occidentale) .

Вопрос в том, как я могу удалить строковую часть GMT 0200 (ora legale Europa occidentale) ?

Ответ №1:

Вот так:

 dateString = dateString.toString().replace(/ GMT.*/,"");
 

Приведенное выше просто заменяет пробел до GMT и все после GMT включения GMT на empyt String .

Я использовал .toString() для преобразования Object String , чтобы это .replace() можно было использовать.

Комментарии:

1. Вам действительно понадобится dateString.toString().replace , потому что даже если в OP указана строка, это все равно a Date .

Ответ №2:

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

Ответ №3:

Это мой текущий фаворит, потому что он одновременно гибкий и модульный. Это набор (как минимум) из трех простых функций:

 /**
 * Returns an array with date / time information
 * Starts with year at index 0 up to index 6 for milliseconds
 * 
 * @param {Date} date   date object. If falsy, will take current time.
 * @returns {[]}
 */
getDateArray = function(date) {
    date = date || new Date();
    return [
        date.getFullYear(),
        exports.pad(date.getMonth() 1, 2),
        exports.pad(date.getDate(), 2),
        exports.pad(date.getHours(), 2),
        exports.pad(date.getMinutes(), 2),
        exports.pad(date.getSeconds(), 2),
        exports.pad(date.getMilliseconds(), 2)
    ];
};
 

Вот функция pad:

  /**
 * Pad a number with n digits
 *
 * @param {number} number   number to pad
 * @param {number} digits   number of total digits
 * @returns {string}
 */
exports.pad = function pad(number, digits) {
    return new Array(Math.max(digits - String(number).length   1, 0)).join(0)   number;
};
 

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

 /**
 * Returns nicely formatted date-time
 * @example 2015-02-10 16:01:12
 *
 * @param {object} date
 * @returns {string}
 */
exports.niceDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0]   '-'   d[1]   '-'   d[2]   ' '   d[3]   ':'   d[4]   ':'   d[5];
};

/**
 * Returns a formatted date-time, optimized for machines
 * @example 2015-02-10_16-00-08
 *
 * @param {object} date
 * @returns {string}
 */
exports.roboDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0]   '-'   d[1]   '-'   d[2]   '_'   d[3]   '-'   d[4]   '-'   d[5];
};