Date Formats
by harsh dand
JavaScript
var formatDate = function (date, format) {
var template = format;
var validDateFragments = [{
name: 'month',
values: ['mmm', 'mm', 'm']
}, {
name: 'year',
values: ['yyyy', 'yy']
}, {
name: 'date',
values: ['dd', 'd']
}];
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];
var params = {};
for (var i in validDateFragments) {
for (var j in validDateFragments[i].values) {
if (format.indexOf(validDateFragments[i].values[j]) != -1) {
switch (validDateFragments[i].name) {
case 'month':
template = template.replace(validDateFragments[i].values[j], 'm');
params.month = validDateFragments[i].values[j];
break;
case 'year':
params.year = validDateFragments[i].values[j];
template = template.replace(validDateFragments[i].values[j], 'y');
break;
case 'date':
params.date = validDateFragments[i].values[j];
template = template.replace(validDateFragments[i].values[j], 'd');
break;
}
break;
}
}
}
var formattedDate = template;
for (var i in params) {
if (params.hasOwnProperty(i)) {
var str;
var type;
switch (params[i]) {
case 'mmm':
str = months[date.getMonth()];
type = 'm';
break;
case 'mm':
str = date.getMonth() + 1;
str = (str.toString().length == 1) ? '0' + str : str;
type = 'm';
break;
case 'm':
str = date.getMonth() + 1;
...