Jinxed
Jinxed

Reputation: 736

Alternative to toLocaleString() for chrome browser

 function tolocal(str)
 {
 var date, split, dSplit, tSplit, d, raw;
date = '';
split = str.split(' ');
if (split.length === 2) {
    dSplit = split[0].split('-');
    tSplit = split[1].split(':');
}
raw = d.toLocaleString().split(' GMT')[0];

 return raw.substring(raw.indexOf(", ")+2, raw.lastIndexOf(':')) + " " + raw.substring(raw.length-2,raw.length)
 }

The above code, works well in ie browser where I get the output in the following format.

November 13,2012 10:15 AM

But I am not able to achieve the same in the chrome browser. Is there any other function which will help me achieve the same output? date.toUTCString() provides the same result but I am not sure how different it is to toLocaleString() in terms of functionality.

Thanks in advance.

Upvotes: 3

Views: 4442

Answers (3)

Qantas 94 Heavy
Qantas 94 Heavy

Reputation: 16020

Just do it manually:

// Where "date" is a Date object
function dateFormatUTC(date) {
  var months = [
    'January', 'February', 'March', 'April', 'May', 'June',
    'July', 'August', 'September', 'October', 'November', 'December'
  ];

  var hours = date.getUTCHours();
  if (hours < 10) hours = '0' + hours;

  var minutes = date.getUTCMinutes();
  if (hours < 10) hours = '0' + hours;

  var monthName = months[date.getUTCMonth()];
  var timeOfDay = hours < 12 ? 'AM' : 'PM';

  return monthName + ' ' + date.getUTCDate() + ', ' +
         date.getUTCFullYear() + ' ' + hours + ':' + minutes + timeOfDay;
}

Upvotes: 3

user234
user234

Reputation: 120

you can try using options like below:

  var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
          // request a weekday along with a long date
   var options = {weekday: "long", year: "numeric", month: "long", day: "numeric"};
     // an application may want to use UTC and make that visible
    options.timeZone = "UTC";
    options.timeZoneName = "short";
    alert(date.toLocaleString("en-US", options));

Please find the reference @

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

Upvotes: 1

R. Oosterholt
R. Oosterholt

Reputation: 8120

maybe you can use a thirdparty library to do stuff like that: moment.js is a good one. Example:

moment(d).format('MMMM Do, YYYY h:mms a');

Upvotes: 3

Related Questions