MsNichols
MsNichols

Reputation: 1133

Format Date in Javascript/JQuery as Single Digit Day

Currently, I am pulling in a json feed from our calendar. It brings back the date in the yyyy/mm/dd format... I know I can overwrite this format by using javascript but how would I do this? I need the output to only be the "dd" not the month nor the year.

I would also like single digit days to show up as i.e. "1","2","3","4" and of course dbl digits to show up as usual "10", "11", "12", etc. Any ideas on how I could achieve this reformatting of the date via javascript/jquery?

Upvotes: 0

Views: 1626

Answers (2)

talemyn
talemyn

Reputation: 7960

This code should do it . . .

var jsonDate = <...reference to the JSON date value...>;
var dayValue = jsonDate.split("/")[2].replace(/0(.)/, "$1");

You've already got a string value, so might as well just manipulate it as a string.

  • jsonDate.split("/")[2] splits up the full date and then takes the third item from the resulting array (i.e., the day value)
  • .replace(/^0(.)$/, "$1") will trim off the "0", if it finds it in the first position of the "day" string

Then you just use dayValue wherever you need to use it. :)

UPDATE:

Based on the comments below, try using this as your code:

var listingEl = $('<div class="eventListings" title="' + item.event.title + '" />');
var dateEl = $('<div class="mdate">' + dayValue + '</div>');
var linkEl = $('<a href="' + item.event.localist_url + '" />');
var titleEl = $('<div class="mcTitle">' + item.event.title + '</div>');

linkEl.append(titleEl);
listingEl.append(dateEl);
listingEl.append(linkEl);
$('#localistTitle').append(listingEl);

UPDATE 2:

There was something not working in your code (I think the main issues was how you were using .appendTo()). I split it out into a multi-step process and used .append() instead. It worked correctly when I tested it locally.

Upvotes: 0

Bic
Bic

Reputation: 3134

You can use a Date object

var theDate = new Date(dateString);

var theDay = parseInt(theDate.getDate(), 10);

Alternatively, if you don't want to use the object and can expect the same string back each time:

var theDay = parseInt(dateString.split('/')[2], 10);

Upvotes: 1

Related Questions