- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
Using Optimizely to convert date format by country
Using Optimizely to convert date format by country
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report
I have a need to do country – level customization for various bits of site content like dates.
I would like to convert a date in this format: 22-06-2014
To this format: 06-22-2014
For countries like the US that put month first. With dates like June 22 it's not an issue for June 8th might be a problem.
Can this be done?
Thanks in advance,
Dan
Re: Using Optimizely to convert date format by country
[ Edited ]- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report
@dansullivan - just to make sure I am understanding your question, the date exists on your site itself as 22-06-2014. Correct? Can you share the URL where this exists by any chance?
You should be able to use some RegEx or some JavaScript to split the element at the "-" and then re-arrange as needed. I would assume it's just string manipulation, but would need to see how the date actually shows up on your page to fully confirm.
Here's a sample where the intial date 11-22-06 is transformed to 22-11-06 (the new_date variable). Feel free to swap around as needed.
var str = "11-22-06"; var month = str.split("-")[0] var day = str.split("-")[1] var year = str.split("-")[2] var new_date = day + "-" + month + "-" + year
Re: Using Optimizely to convert date format by country
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report
If you need it to be dynamic based on the users locale preferences, you could try something like this:
1- create an Audience that limit the experiment to browsers that support "toLocaleDateString"
typeof Date.prototype.toLocaleDateString !== 'undefined'
2- presuming that your date is in an element such as <span id="shipDate">, fetch the date, modify it, and replace it, like this:
try {
//grab the date from the text on the page and create a Date object from the text
var str = window.$('#shipDate').text().trim();
var month = parseInt(str.split("-")[1])-1;
var day = parseInt(str.split("-")[0]) +1;
var year = parseInt(str.split("-")[2]);
var date = new Date(Date.UTC(year, month, day));
//set the date format to match the user's browser preference settings
var modDate = date.toLocaleDateString();
//if the month or day are only one digit long, place a leading 0 in front of it then smoosh it all back together again
modDateArray = modDate.split('/')
if (modDateArray[0].length == 1) {modDateArray[0] = '0' + modDateArray[0]}
if (modDateArray[1].length == 1) {modDateArray[1] = '0' + modDateArray[1]}
modDate = modDateArray[0] + "/" + modDateArray[1] + "/" + modDateArray[2];
//replace the slashes with dashes because that's how we like them to look
modDate = modDate.replace(/\//g,'-');
//update the date on the page to match our formatted date
window.$('#shipDate').text(modDate)
} catch(e) {
}
Re: Using Optimizely to convert date format by country
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report