3 сентября 2012 г.

Форматированный вывод даты в JavaScript

Форматированный вывод даты в JavaScript.

  В одном проекте мне постоянно требовалось выводить даты в разных форматах.Так как в JS такой функции не имеется, то было решено написать следующую функцию getDateTimeToString(). Способ использования довольно прост, в параметр передается строка содержащая специальные ключи. Функция разбирает входной параметр и заменяет ключи значениями текущей даты. В результате работы будет возвращена строка.
 

В функции используются следующие ключи (на примере даты 1 февраля 2012г 10:5:23:233):

yyyy - полный год, пр.: 2012
yy - последние цифры года, пр.: 12
MM - номер месяца, пр.: 02
dddd - полное название дня недели, пр.: Среда
ddd - сокращенное название дня недели, пр.: Ср.
dd - число, пр.: 01
hh - часы, пр.: 10
mm - минуты, пр.: 05
ss - секунды, пр.: 23
zz - миллисекунды, пр.: 233

Пример использования:


getDateTimeToString("dd/MM/yy г. Время:hh:mm:ss");
getDateTimeToString("dd-MM-yyyy hh:mm");
getDateTimeToString("Год: yyyy, День недели: dddd");

Исходный код функции:

/**
* Генерирует дату и время в заданном формате
* 12:59:52 03.09.2012
* @author Ильин Олег
* @param {String} strFormat формат-строка
* @returns {String} отформатированная дата
*/

function getDateTimeToString(strFormat){
var resultDateTime = strFormat;
var d = new Date();

var daysLong = ["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"];
var daysShort = ["Пн.","Вт.","Ср.","Чт.","Пт.","Сб.","Вс."];
var yearRegExp = d.getFullYear();
var monthRegExp = (String(d.getMonth()+1).length ==1) ? ("0"+(d.getMonth()+1)) : (d.getMonth()+1);
var dayRegExp = (d.getDate().toString().length ==1) ? ("0"+d.getDate()) : d.getDate();
var dayNameRegExp = d.getDay();
var hoursRegExp = (d.getHours().toString().length ==1) ? ("0"+d.getHours()) : d.getHours();
var minuteRegExp = (d.getMinutes().toString().length ==1) ? ("0"+d.getMinutes()) : d.getMinutes();
var secondsRegExp = (d.getSeconds().toString().length ==1) ? ("0"+d.getSeconds()) : d.getSeconds();
var milisecondsRegExp = (d.getMilliseconds().toString().length ==1) ? ("00"+d.getMilliseconds()) : ((d.getMilliseconds().toString().length ==2) ? ("0"+d.getMilliseconds()) : d.getMilliseconds());

resultDateTime = resultDateTime.replace(new RegExp('yyyy', 'g'), yearRegExp);
resultDateTime = resultDateTime.replace(new RegExp('yy', 'g'), String(yearRegExp).slice(-2));
resultDateTime = resultDateTime.replace(new RegExp('MM', 'g'), monthRegExp);
resultDateTime = resultDateTime.replace(new RegExp('dddd', 'g'), daysLong[dayNameRegExp-1]);
resultDateTime = resultDateTime.replace(new RegExp('ddd', 'g'), daysShort[dayNameRegExp-1]);
resultDateTime = resultDateTime.replace(new RegExp('dd', 'g'), dayRegExp);
resultDateTime = resultDateTime.replace(new RegExp('hh', 'g'), hoursRegExp);
resultDateTime = resultDateTime.replace(new RegExp('mm', 'g'), minuteRegExp);
resultDateTime = resultDateTime.replace(new RegExp('ss', 'g'), secondsRegExp);
resultDateTime = resultDateTime.replace(new RegExp('zz', 'g'), milisecondsRegExp);

return resultDateTime+"";
};

6 комментариев:

  1. спасибо, пользуюсь.

    ОтветитьУдалить
  2. Спасибо большое, может пригодиться, написано по уму.

    ОтветитьУдалить
  3. Gr5 Titanium - Titanium Art | TITanium Art
    › product titanium element › gr5-titanium-art › product › gr5-titanium-art Nov 3, 2021 — titanium hammers Nov titanium lug nuts 3, 2021 Gr5 titanium schick quattro titanium art has titanium trimmer as seen on tv a perfect, handmade piece to create a unique sculpture for your upcoming wedding.

    ОтветитьУдалить