Today I wanted to format all my post dates using a custom background image that I've found in one of these useful web graphics packs on a web site. For this blog, I've chosen the format Day, Month DayNumber, Year, that is,
Thursday, April 14, 2011. The problem is that the markup used by my template uses a single h2 element with the CSS class date-header associated to it. That is:
<h2 class="date-header">Thursday, April 14, 2011</h2>
Instead, my image is divided into two main color areas, as you can see below:
So here I had to turn the current format into April 14, 2011 and the corresponding markup into the following one:
<h2 class="date-header"> <span class="month">April 14</span> <span class="year">2011</span> </h2>
I didn't want to play with my date settings, so I've used the following JavaScript code:
var h2 = document.getElementsByTagName('h2');
for(k = 0; k <h2.length; k +=1) {
var elem = h2[k];
if(elem.className == 'date-header') {
var text = elem.firstChild.nodeValue;
var parts = text.split(',');
var month = '<span class="month">' + parts[1] + '</span>';
var year = '<span class="year">' + parts[2] + '</span>';
elem.innerHTML = month + year;
}
}
I've basically split the text node of the heading using the comma as a separator and then I've assembled the resulting string to be used with the innerHTML property. I think it's working, but honestly this is the kind of thing that would require a specific widget, IMHO. wink